call()、 apply()、 bind() 区别

定义:调用一个对象的一个方法,用另一个对象替换当前对象 

var obj1 = {
  name:'yy',
  age:20
}
var obj2 = {
  name:'yhl',
  age:18,
  yhlFuntion: function(aa,bb){
    console.log('姓名:'+ this.name + '年龄:'+ this.age + '爱好:'+aa +'讨厌:'+ bb)
  }
}
obj2.yhlFuntion('打篮球', '吃苹果')               //姓名:yhl年龄:18爱好:打篮球讨厌:吃苹果
obj2.yhlFuntion.call(obj1,'打篮球','吃苹果')      //姓名:yy年龄:20爱好:打篮球讨厌:吃苹果
obj2.yhlFuntion.apply(obj1, ['打篮球', '吃苹果']) //姓名:yy年龄:20爱好:打篮球讨厌:吃苹果
obj2.yhlFuntion.bind(obj1, '打篮球', '吃苹果')()  //姓名:yy年龄:20爱好:打篮球讨厌:吃苹果

call可以传入多个参数

apply只能传入两个参数,第二个参数是作为数组形式传入

bind除了函数调用以外,它的参数和call 一样,加上()自调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值