在下面的示例中,是通过for..in循环为每次迭代创建的新变量'y'吗?或者是变量声明被提升到函数的顶部,并在每次迭代时重新使用?JavaScript函数级范围
function example() {
var x;
for(x in obj) {
var y = obj[x];
}
}
感谢
在下面的示例中,是通过for..in循环为每次迭代创建的新变量'y'吗?或者是变量声明被提升到函数的顶部,并在每次迭代时重新使用?JavaScript函数级范围
function example() {
var x;
for(x in obj) {
var y = obj[x];
}
}
感谢
它的悬挂,因为for循环对范围没有任何影响。
y是被替换的相同变量。做一个新的,你会用
function example() {
var x;
var y= new Array;
for(x in obj) {
y[x] = obj[x];
}
}
var obj = {
name: "Dan",
surname: "Tao"
};
var x;
for (x in obj) {
var y = obj[x];
}
alert(y);
一个警告框将与文本Tao
出现,表明y
是for
循环的范围之外访问。
我想,只是想确定一下。谢谢。 – Steve