函數的call()方法和apply()方法
阿新 • • 發佈:2017-11-06
spa 概念 函數 對象 apply() ole javascrip 參數 blog ,在函數體內通過this來獲得對它的引用。
閱讀各種框架的源碼apply和call方法肯定經常看到,好好理解一下概念至關重要。
JavaScript中的函數也是對象,和其他JavaScript對象沒什麽兩樣,函數對象也可以包含方法。其中的call()方法和apply()方法可以間接調用函數。兩個方法都允許顯式指定調用所需的this值,也就是說,任何函數都可以作為任何對象的方法來調用,哪怕這個函數不是那個對象的方法。
兩個方法都可以指定調用的實參。call()方法使用它自有的實參列表作為函數的實參,apply()方法則要求以數組的形式傳入參數。
call()方法和apply()方法的第一個實參是要調用函數的母對象,它是強調上下文
function a1(i,j){ var a = 1; console.log(a); console.log(i,j); } function b1(i,j){ var b = 2; console.log(i,j); this(i,j); } b1.call(a1,111,222); // call()方法調用 // b1.apply(a1,[111,222]); apply()方法調用,一樣的,只是傳參形式不一樣
函數的call()方法和apply()方法