call,apply,bind三者的作用?
简单来说就是改变this的指向
call,apply,bind三者的区别?
相同之处:这三个函数的第一个参数都是 this 的指向对象,即把原本this替换掉后的对象
不同之处:
1. call和apply的区别在于,前者传入的参数为单个参数形式,后者为数组形式
2. bind和call类似, call调用后立即执行,但bind 返回的是一个新的函数,你必须调用它才会被执行
call,apply,bind三者怎么使用?
如下代码所示
注:stu2为替换原本this指向的对象stu1
<script>
var stu1 = {
name: 'kevin',
age: 18,
say: function (school, grade) {
console.log(this.name + '今年' + school + grade + '年级');
}
}
var stu2 = {
name: 'bob'
}
//stu2为替换原本this指向的对象stu1
stu1.say.call(stu2, '川大', '一');
stu1.say.apply(stu2, ['电大', '二']);
stu1.say.bind(stu2, '财大', '三')();
binds();
</script>
有需要的朋友可以领取支付宝到店红包,能省一点是一点
