【发布时间】:2011-01-27 22:10:57
【问题描述】:
我不确定如何准确地描述我想要的东西。我想定义一个函数,其参数是本地 VALUE 而不是引用。
假设我有想要创建的对象列表
for(i = 0; i < 10; i++){
var div = document.createElement("div");
div.onclick = function(){alert(i);};
document.appendChild(div);
}
现在我相信这个例子无论我点击什么div,它都会提示“10”;因为这是变量 i 的最后一个值;
有没有办法/如何创建一个函数,其参数是我指定函数时的值......如果这有任何意义。
【问题讨论】:
-
函数内部,
i是捕获的变量,不是参数。 -
另请参阅:stackoverflow.com/questions/1734749stackoverflow.com/questions/643542stackoverflow.com/questions/1582634stackoverflow.com/questions/1331769stackoverflow.com/questions/1552941stackoverflow.com/questions/750486stackoverflow.com/questions/933343stackoverflow.com/questions/1579978stackoverflow.com/questions/1413916...以及更多...:)跨度>
-
@CMS:是的;我在回答这类问题时获得了很高的声誉。
-
@SLaks: 是的,我也多次多次回答过这个问题,我想在某些时候我们需要通过 tag i> 或类似的东西......
-
当您不确定如何准确表达问题时,很难找到现有答案:)
标签: javascript function closures parameter-passing