-2
我見過很多java腳本代碼,它使用調用以及應用方法來調用函數。 我對於確切的區別以及在哪種情況下使用哪一種有點混淆。jQuery中的調用和應用方法有什麼區別
我見過很多java腳本代碼,它使用調用以及應用方法來調用函數。 我對於確切的區別以及在哪種情況下使用哪一種有點混淆。jQuery中的調用和應用方法有什麼區別
他們不是jQuery的東西,他們是JavaScript的東西。
他們做同樣的事情:他們在函數調用中使用this
的特定值調用給定函數。唯一的區別是你如何指定傳遞給函數的參數。使用call
時,可以將它們指定爲一系列離散參數(在第一個參數後面,作爲this
使用)。用apply
,你可以將它們指定爲一個數組(在第一個參數之後,這就是this
)。
所以說,我們有:
function foo(a, b, c) {
console.log("this = " + this);
console.log("a = " + a);
console.log("b = " + b);
console.log("a = " + c);
}
這兩個調用做同樣的事情:
foo.call("bar", 1, 2, 3);
// Note --------^--^--^--- a series of discrete args
foo.apply("bar", [1, 2, 3]);
// Note ---------^-------^-- args as an array
在這兩種情況下,我們可以看到:
this = bar a = 1 b = 2 c = 3
看看MDN文檔[call](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call),[apply](https://developer.mozilla.org/en-US /文檔/網絡/ JavaSc RIPT /參考/ Global_Objects /功能/應用) –