看着下面的jQuery的代碼:jQuery的事件處理程序關閉VS上下文
$button.on("click", {context: "externalRef1"}, function(e){ if (e.data.context){...} });
我不知道,當我應該將數據傳遞到處理程序的情況下(按照上面的示例),爲什麼我不能總是依賴關閉(從不知道相互衝突的名字 - 這真的不是問題)?
一些澄清 - 閉包是關於允許該代碼使用外部瓦爾,即
var foo = function(){
var externalRef = "a1";
var call = function(){}{
alert(externalRef); // a1
}
};
如果這是總是這樣,爲什麼你需要傳遞數據的方式指出了上面?
我不知道我理解你的問題...這個代碼來自哪裏?我們需要一些背景知道你爲什麼使用這個'context'值? – Matt
我使用外部值cos我需要從事件處理程序以外的其他作用域訪問某些內容。 – user1514042
不同的情況需要不同的技術。閉包變量只能直接訪問該範圍內的函數,而作爲事件數據提供的對象可以自由傳遞和共享。在每個給定的時間使用有意義的東西。 – 2013-05-26 23:10:39