calValue: function (data) {
var self = this;
var values = data.values;
for (var i = 0; i < data.length; i++) {
if(data.condition == 0){
(function (values) {
for (i = 0; i < values.length; i++) {
}
})(values)
}
else{
//do sth else
}
}
}
私の理解は、それぞれのコンテキストとその中で宣言されている変数は内部でのみ有効です。上記のコードスニペットのように、内側のforループ内の "i"変数は外側の "i"変数に影響を与えません。しかし、事実それは影響を及ぼします。javascriptの変数スコープ
誰かが説明してくれますか?ありがとう。
これは、2番目の内部関数で 'i'を再宣言しないので、内部関数ではなく、外部関数から' i'を使用しているからです。 –
ダニエルに感謝します。意味がある。 – connie