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>

call()  apply()  bind()的用法

 

有需要的朋友可以领取支付宝到店红包,能省一点是一点