前段时间我发布了一个关于what questions should a good javascript coder be able to answer的问题。 Meder指出以下问题:如何在JavaScript中复制参考值?
由于“i”在onclick函数中作为参考而不是作为参考值存在,因此以下代码会将任何“a”元素点击为alert(-1) :
<a href="#">text</a><br><a href="#">link</a>
<script>
var as = document.getElementsByTagName('a');
for (var i = as.length; i--;) {
as[i].onclick = function() {
alert(i);
return false;
}
}
</script>
的问题是:如何使的onclick 功能拥有i的值修正这个 实现的,不能 它的参考?
我不知道答案。如何解决它?如何让我成为参考价值的副本而不是实际参考?
小问题:所有变量类型都作为参考传入吗?或者它是否是原始类型还是对象?
任何想法将不胜感激。
这是最常见的问题之一,请查看我的回答和在这个问题中的评论:http://stackoverflow.com/questions/1804438/#1804452 – CMS 2009-12-04 01:24:06