2014-11-07 30 views
0

JQuery提供了一個名爲jQuery.proxy()的方法,它允許將附加參數傳遞給原始調用方未提供的函數。但是,文檔沒有說明這些參數提供給接收功能的順序。收據的順序是什麼?在jQuery.proxy中傳遞的附加參數的順序是什麼?

例如:

function f(a,b,c) { 
    console.log(a,b,c); 
} 

var p = jQuery.proxy(f, null, 1, 2); 
p(3); 

什麼是的,b和c的值?

回答

0

通過jQuery.proxy()返回的新函數中明確傳遞的附加參數作爲第一個參數傳遞給被調用函數。傳遞給代理函數調用的任何參數都遵循附加參數。所以在這個問題造成的代碼,輸出結果將是:

1,2,3

這似乎是一個毫無意義的問題和答案,但同樣有效的替代定義可能是,實際的參數是先在代理導致的一個可能的答案:

3,1,2

護理需要使用代理時,其中調用代理的功能是你無法控制的外部取出。例如:

function myHandler(value1, value2, event) { 
... 
} 
$("button").click($.proxy(myHandler, null, "value1", "value2")); 

將需要捕捉和除了你額外的參數處理event參數。

相關問題