suj*_*joe 4 javascript closures
我一直在熟悉javascript闭包,并浏览了这篇文章 http://blog.morrisjohns.com/javascript_closures_for_dummies.html
由于关闭,示例5不能按预期工作.如何修改
result.push( function() {alert(item + ' ' + list[i])} );
Run Code Online (Sandbox Code Playgroud)
使代码工作?
function buildList(list) {
var result = [];
for (var i = 0; i < list.length; i++) {
var item = 'item' + list[i];
result.push( function() {alert(item + ' ' + list[i])} );
}
return result;
}
function testList() {
var fnlist = buildList([1,2,3]);
// using j only to help prevent confusion - could use i
for (var j = 0; j < fnlist.length; j++) {
fnlist[j]();
}
}
testList();
Run Code Online (Sandbox Code Playgroud)
谢谢!
function buildList(list) {
var result = [];
for (var i = 0; i < list.length; i++) {
(function(i) {
var item = 'item' + list[i];
result.push(function() {
alert(item + ' ' + list[i]);
});
})(i);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1527 次 |
| 最近记录: |