call、apply、bind比较

三者相同点

call apply bind都可以改变函数调用的this指向

call与apply的不同

传入参数的不同,call可以按照顺序一次传入参数,apply的第二个参数只能是数组。

call、apply与bind的不同

call()、apply()都是立即调用函数
bind()是将函数返回,生成一个新的函数长期绑定某个函数给某个对象使用。传参方式与call相同。

var obj = {name:'coco'};
function foo (data) {
	console.log(this.data);
}
var test = foo.bind(obj,33);
test();
setTimeout(function () {
	console.log(this);//输出obj
	//制定this
}.bind(obj),1000)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值