2013-12-14 73 views
-2

我見過很多java腳本代碼,它使用調用以及應用方法來調用函數。 我對於確切的區別以及在哪種情況下使用哪一種有點混淆。jQuery中的調用和應用方法有什麼區別

+0

看看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 /功能/應用) –

回答

3

他們不是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
相關問題