创建具有值参数而不是引用的函数引用
我不确定如何准确描述我想要的东西。我想定义一个函数,其参数是本地值而不是引用。
假设我有要创建的对象列表
for(i = 0; i < 10; i++){
var div = document.createElement("div");
div.onclick = function(){alert(i);};
document.appendChild(div);
}
现在我相信在这个例子中无论我单击哪个 div,它都会提醒“10”;因为这是变量 i 的最后一个值;
有没有办法/如何创建一个函数,其参数是我指定函数时的值...如果这有意义的话。
I'm not sure exactly how to describe what I want. I want to define a function with the parameters being a local VALUE not a reference.
say I have list of objects I want to create
for(i = 0; i < 10; i++){
var div = document.createElement("div");
div.onclick = function(){alert(i);};
document.appendChild(div);
}
Now I believe in this example no matter what div I click on, it would alert "10"; as that is the last value of the variable i;
Is there a way/how do I create a function with the parameters being the value they are at the time I specify the function... if that makes any sense.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要在另一个函数中创建该函数。
例如:
此代码创建一个接受参数的函数并返回一个使用该参数的函数。由于外部函数的参数是按值传递的,因此它解决了您的问题。
将外部函数设置为单独的命名函数通常会更清楚,如下所示:
You need to create the function inside another function.
For example:
This code creates a function that takes a parameter and returns a function that uses the parameter. Since the parameter to the outer function is passed by value, it solves your problem.
It is usually clearer to make the outer function a separate, named function, like this:
您可以使用匿名函数:
You could use an anonymous function: