1. 程式人生 > >call() 和 apply() 的作用和區別

call() 和 apply() 的作用和區別

www logs 兩個 作用 cti .com java 個數 str

    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的參數是一個數組

call() 和 apply() 的作用和區別