[javascript] jQuery.proxy()用法


0 Answers

它只是一個為閉包設置上下文的簡短方法,例如:

$(".myClass").click(function() {
  setTimeout(function() {
    alert(this); //window
  }, 1000);
});

然而,我們經常希望this與我們所使用的$.proxy()方法保持一致,如下所示:

$("button").click(function() {
  setTimeout($.proxy(function() {
    alert(this); //button
  }, this), 1000);
});​

它通常用於延遲呼叫,或者任何你不想做一個宣布閉包的長效方法的地方。 將上下文指向對象的字符串方法......嗯,我還沒有在每天的代碼中遇到過實際用途,但我確定有應用程序,只是取決於您的對象/事件結構。

Question

我正在閱讀關於jQuery.proxy()的api。 它看起來很有希望,但我想知道在什麼情況下最好用。 任何人都可以啟發我嗎?






Related