掌握call()、apply()、bind() 的用法

        以前还特意学习过三者的用法,近期遇到,又发现自己理解的的磕磕绊绊,模棱两可,俗话说好记性不如烂笔头,想着还是记一下吧。


一:三者的用法:

以此码为例:

var name='小王',age=21;
var obj={
  name:'小三',
  age1:this.age,
  Fun:function(x,y){
    console.log(this.name+"年龄"+this.age+"来自"+x+"去"+ y);
  }
}
var my={
  name:'小奇',
  age:21
}
obj.Fun.call(my,'漯河','郑州');
obj.Fun.apply(my,['舞阳','漯河']);    
obj.Fun.bind(my,'郑州','太行山')();      
obj.Fun.bind(my,['老君山','鸡冠洞'])();   

1:相同点:

call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象。

2:不同点:

call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔。

apply 的所有参数都必须放在一个数组里面传进去 。

bind 除了返回是函数以外,它 的参数和 call 一样。

3:用处(修改this指向)

看代码输出结果:

观察代码不难看出使用这三个方法,修改this的指向为my。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五花肉三七分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值