**bind方法和this的指向**

bind方法和this的指向

   函数A调用bind(),会在该函数的基础上建立一个新的函数;新函数其实就是就原函数,只是给函数起了个新的名字;

  传入bind()的第一个参数就是新函数的this;新函数的执行顺序和原函数一样,bind()的第一个参数只是改变了新函数中this的指向;bind()后的第2个及之后的参数在调用新函数时作为实参给新函数传参

var A = {

   name:"小a在唱歌" ,

    feng:function(){

    console.log(this.name);

    }

}

A.feng(); //执行结果是:小a在唱歌

var B = {

    name:"小b在唱歌"

}

var C = A.feng.bind(B);//此时,新函数C中的this指向对象B;

console.log(C); //此时C就是 A对象中的feng:function(){ console.log(this.name);}

C();      //执行函数C,并输出函数B的name;执行结果是:小b在唱歌

// 定时器中this的改变
var obj = {

    name:"admin",

    show:function(){

        demo.bind(this);//此时this指向object

        setTimeout(demo.bind(this),1000)//此时this(object)作为新函数的第一个参数,即新函数this的指向是object

    }

}

function demo(){

    console.log(this)

}

obj.show();//输出结果为object
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值