0
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中的變量範圍
有人請幫忙解釋一下嗎?謝謝。
這是因爲您不會在第二個內部函數中重新聲明'i',所以它使用的是外部函數中的'i',而不是它自己的內部副本。 –
謝謝丹尼爾。有道理。 – connie