(a)无论用户点击什么按钮,数字5将总会输出到控制台。这是因为,当>
或者,你可以封装全部调用到在新匿名函数中的 btn.addEventListener :
- for (var i = 0; i < 5; i++) {
- var btn = document.createElement('button');
- btn.appendChild(document.createTextNode('Button ' + i));
- (function (i) { btn.addEventListener('click', function() { console.log(i); }); })(i);
- document.body.appendChild(btn);
- }
当 nextListItem 运行时,如不雅 item不为空,timeout函数(nextListItem)就会被推到事宜队列,该函数退出,是以就清空调用客栈。当事宜队列运行其timeout事宜,且进行到下一? item 时,准时器被设置为再次调用 nextListItem。是以,该办法大年夜头到尾都没有直接的递归调用,所以无论迭代次数的若干,调用客栈保持清空的状况。
也可声调用数组对象的本地 forEach 办法来替代 for 轮回:
- ['a', 'b', 'c', 'd', 'e'].forEach(function (value, i) {
- var btn = document.createElement('button');
- btn.appendChild(document.createTextNode('Button ' + i));
- btn.addEventListener('click', function() { console.log(i); });
- document.body.appendChild(btn);
- });
14.下面的代码将输出什么到控制台,为什么?

网友点评
精彩导读
科技快报
品牌展示