コピーする方法は以下のようにな価値を参考javascript?
-
12-09-2019 - |
質問
一時間前から掲載してい 何の問題もjavascriptメリカ-サンフランシスコお答えでき.Meder指摘され、以下の質問:
以下のコードがこのクリックして"、"要素alert(-1)により、この"i"は、onclickとしての機能を参考としてではなく値:
<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 機能を保持していかな です。
わからないの答えになります。どこを直せばいいの?うたのコピーは参考値ではなく、実際の。
側の質問:すべての変数の種類として渡された。せであるかどうかでprimitityタイプまたはオブジェクト?
意思によりお願い申し上げます。
解決
この問題は、どのように生活をしているかを知る 閉鎖 です。していなければなりませんかjavascriptを得た範囲内で機能的ではなくブロックを基準として、Cなど)を行います。
この"stantard"ソリューション:
<a href="#">text</a><br><a href="#">link</a>
<script type="text/javascript">
var as = document.getElementsByTagName('a');
for ( var i = as.length; i--; ) {
as[i].onclick = (function(i) {
return function() {
alert(i);
return false;
}
})(i);
}
</script>
他のバージョンは 正確に 同様のことがわかりやすい場合に慣れていない閉鎖および範囲JSは:
for ( var i = as.length; i--; ) {
as[i].onclick = (function(number) {
return function() {
alert(number);
return false;
}
})(i);
を考えたんですか?
他のヒント
<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() {
return function() {
alert(i);
return false;
}
}();
}
</script>
多分?
所属していません StackOverflow