for in循环将对象属性分配给左侧变量。
不应仅用于“循环体内”。我不知道永久分配(显然在完成脚本之前)有意义吗?
有没有人看到用例?
下面的脚本将对象属性复制到数组。
var obj = {a:1,b:2};
var arr = [];
var x = 0;
for(arr[x++] in obj) // shouldn't be temporary assignment?
{} // empty body
for(new_values in arr){
console.log(arr[new_values]) // i can fetch values here.
}
//a
//b
答案 0 :(得分:4)
为什么对象属性赋值不受限于(for in)循环?
因为它不受任何限制。 JavaScript变量很简单。他们唯一的范围是功能级别,然后才会使用var
关键字。
答案 1 :(得分:2)
这是分配JavaScript。但是这个代码也是对......循环的滥用。
for(var temp in obj) {
// do something with temp;
}
是传统形式,但您的样本是合法的。
注意:对于阵列中的... in循环会产生意外结果。