[英]Implementing closure in element.bind - angular
我將事件綁定到指令中的元素,並希望傳遞循環變量。 如何使用閉包呢?
for(var i=0; i<events.length; i++) {
switch(events[i]) {
case 'focus' :
var m = i;
element.bind('focus', function(event) {
console.log(m);
});
break;
case 'blur' :
var n = i;
element.bind('blur', function(event) {
console.log(n);
});
break;
}
}
在上面的代碼中,我使用變量m和n,但是如果沒有變量我該怎么辦呢?
我也試過
element.bind('focus', function(num, event) {
console.log(num);
}(i));
但這沒用
創建一個單獨的函數,您可以通過傳遞i
來調用它並返回一個函數,從而創建一個閉包,該閉包在上下文中具有要傳遞的數字。
function callback(num) {
return function(event) {
console.log(num);
}
}
現在您可以像這樣綁定它
element.bind('focus', callback(i));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.