call() 和 apply() 的作用和区别

call, apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同.

相同点:他们的作用都是相同的 

不同点:他们的参数不同

call(this,arg1,arg2,arg3);

apply(this,arguments);

apply与call产生的作用是一样的

call, apply作用就是借用别人的方法来调用,就像调用自己的一样.

function add(a,b){
            alert(a+b);
        }
    function sub(a,b){
            alert(a-b);
        }
    add.call(sub,3,1);
    add.apply(sub,[3,1]);

他们的不同就在call的参数分别写出来apply的参数是一个数组

 

posted @ 2017-09-21 21:32  AmbitiousZy  阅读(429)  评论(0编辑  收藏  举报