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>
有需要的朋友可以领取支付宝到店红包,能省一点是一点