JQuery是一個知名的JavaScript庫,許多開發(fā)者都會使用它來簡化JavaScript開發(fā)。其中一個常用的功能是事件處理,我們可以使用$.on或者$.bind來綁定事件,但是在事件觸發(fā)后,this指向的是其它內(nèi)容。為了避免這個問題,我們可以使用$.proxy功能。
$.proxy是JQuery中的一個函數(shù),可以用來提供一個新的函數(shù)來調用一個函數(shù),這樣在該函數(shù)內(nèi)部,this指向的是需要的內(nèi)容。
//通過$.proxy來將函數(shù)設置為指定的上下文,使得其中的this指向設定的對象 var myObj = { name: "Jack", hello: function() { console.log("Hello, " + this.name + "!"); } }; $(".myBtn").on("click", $.proxy(myObj.hello, myObj));
在上述代碼中,我們綁定了一個事件處理函數(shù),當按鈕被點擊時,會觸發(fā)myObj.hello函數(shù)。但是,由于事件處理函數(shù)中的this指向會被修改,所以需要使用$.proxy將myObj.hello函數(shù)綁定到myObj對象上。
$.proxy的常用語法如下:
$.proxy(func, context) //或者 $.proxy(context, func)
$.proxy接受兩個參數(shù),第一個參數(shù)是需要被調用的函數(shù),第二個參數(shù)是需要被設置為函數(shù)上下文的內(nèi)容。
總結:$.proxy很有用的一個JQuery功能,通過它我們可以避免this指向不正確的問題,并且使用起來也非常方便。