我正在循环中使用动态创建的函数。
for (var i = 0; i < 4; i++) {
window["functiontest" + i] = function () { alert(i); }
}
它可以工作,但不是我想让它工作的方式。因为当我这样做时,这意味着functiontest0
它将在运行时发出警报“3”,因为它实际上是var i
在循环完成添加到i
.
我想要的是以某种方式“硬编码”电流i
,因此它实际上会警告“0”而不是“3”。我的意思是这样的:
window["functiontest" + i] = function () {
// I need just the current state for `i` here and
// not just the variable `i` - so for exampe I need
// it as `i` literally put 0
}
有什么办法可以强制它将结果写入“字符串”或其他内容?
THX 寻求帮助。很抱歉重复搜索时找不到任何东西。主要是因为我不能很好地解释它:-)
但我最终得到了这样的结果:
for (var genfunc = 0; genfunc < 4; genfunc++) {
if (genfunc == 0) { //left
window["keyDown" + sys_curcontrols[genfunc]] = (function (unique) {
return function () { window["sys_keyLeft" + unique] = -1; }
})(nid);
}