jQuery.proxy() 函數詳解

來源:互聯網
上載者:User

標籤:文法   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() 函數詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.