ES5中this绑定

ES5中this绑定

<script>
    /**
     * this绑定
     * 函数自调用,函数体中的this是指向window的,可以使用apply、cal、bind来绑定this
     */
    var obj = {name:'tom'};
    function say(data){
        console.log(this,data);
    }
    say('111');//Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …} "111"
    say.apply(obj,['111']);//{name: "tom"} "111"
    say.call(obj,'111');//{name: "tom"} "111"
    say.bind(obj,'111')();//{name: "tom"} "111"

    console.log(say.bind(obj,'111'));//f say(data){console.log(this,data);}
    //一般bind常用在回掉函数中,
    setTimeout(function(){
        console.log(this);
    },1000);//Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}
    setTimeout(function(){
        console.log(this);
    }.bind(obj),1000);//{name: "tom"}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值