標籤:文法 his order 代碼 class logs code string var
jQuery.proxy()函數用於改變函數的上下文。
你可以將指定函數傳入該函數,該函數將返回一個新的函數,其執行代碼不變,但函數內部的上下文(this)已經被更改為指定值。
該函數屬於全域的jQuery對象。
文法
jQuery 1.4 新增該靜態函數。jQuery.proxy()函數有如下兩種用法:
用法一:
jQuery.proxy( function, context [, additionalArguments ] )
將函數function的內容物件更改為指定的context。
用法二:
jQuery.proxy( context, name [, additionalArguments ] )
將名為name的函數的上下文更改為指定的context。函數name應是context對象的一個屬性。
參數
請根據前面文法部分所定義的參數名稱尋找對應的參數。
| 參數 |
描述 |
| function |
Function類型需要更改內容物件的函數。 |
| context |
任意類型指定為函數設定的內容物件。 |
| name |
String類型需要更改內容物件的函數名稱(它應該是context的一個屬性)。 |
| additionalArguments |
可選/任意類型指定調用該函數時需要傳入的參數,參數可以有任意多個。 |
注意事項:
- 參數
additionalArguments是從 jQuery 1.6 開始支援的。
- 該方法非常適用於在附加事件處理函數時,將事件處理函數的上下文指向另一個對象。此外,jQuery確保:即使你使用
jQuery.proxy()返回的"代理"函數來綁定事件,如果你在解除綁定時傳入原函數,jQuery仍然可以正確解除綁定。
- 從jQuery 1.9 開始,如果
context為null或undefined,則"代理"函數的上下文不會發生更改。這將允許jQuery.proxy()只傳入函數的參數,而不更改函數的上下文。
傳回值
jQuery.proxy()函數的傳回值為XMLDocument類型,返回解析後的XML文檔對象。
樣本&說明
以下是與jQuery.proxy()函數相關的jQuery範例程式碼,以示範jQuery.proxy()函數的具體用法:
//在當前頁面內追加換列標籤和指定的HTML內容function w( html ){ document.body.innerHTML += "<br/>" + html;}var name = "Hello";function foo( a, b ){ w( this.name ); w( a + b );} // 直接調用foo( 1, 2 );// Hello// 3var obj = { name: "CodePlayer", age: 18 };var proxy = $.proxy( foo, obj, 5, 10 );// 代理調用foo()函數,此時其內部的this指向對象objproxy();// CodePlayer// 15
jQuery.proxy() 函數詳解