【发布时间】:2021-09-28 15:30:02
【问题描述】:
var a = [];
var b = ['abc','def'];
for(var c of b) {
var c_ = c.slice();
a.push(function(){alert(c_)});
}
a[0]();
a[1]();
结果是看到消息“def”两次。这完全出乎意料。我如何在 JavaScript 中做到这一点?如果是alert(c),我可以理解,但c_ 显然是c 的副本,并且适用于其他语言的标准。
【问题讨论】:
标签: javascript closures