当心下面例子的循环:闭包中的局部变量可能和你最初想的不一样。
如题,这是为什么?<script>function buildList(list) { var result = []; for (var i = 0; i < list.length; i++) { var item = 'item' + list; result.push( function() {document.write(item + ' ' + list + '<br />')} ); } return result; } function testList() { var fnlist = buildList(); // using j only to help prevent confusion - could use i for (var j = 0; j < fnlist.length; j++) { fnlist(); } } testList();//输出3次:'item3 undefined' document.write('<br />');</script>
页:
[1]