I am a C# developer and used to the way closures work in C#. Currently I have to work with anonymous javascript functions and experience a problem with the following snippet:
function ClosureTest() {
var funcArray = new Array();
var i = 0;
while (i < 2) {
var contextCopy = i;
funcArray[i] = function() { alert(contextCopy); return false; };
i++;
}
funcArray[0]();
funcArray[1]();
}
我预计第1个<代码>funcArray(>)呼吁说0
,第2个指1
。 但是,这两者都说1
。 如何做到这一点?
作者: 我确保我制作一份可变的<代码>i。 然后,在每次同时举行的活动中,我都设立了一个全新的职能点。 每个职能都提及其自己的<代码>i,即contextCopy
。 但是,由于某种原因,这两项职能都提到了相同的<条码>contextCopy-variable。
这一工作如何用javascript?