Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
6年前关闭。
迭代对象的属性名称的两种方法中的哪一种更好?
与
我知道在第二个示例中,propertyName变成了全局变量,这是可以避免的,所以我想第一个会更好,对吧?
如你所说:
选项1中的
选项2将产生一个新的全局变量,或者将值
因此,选项1确实是“更好的”。
(但是,值得注意的是,在第一个示例中,
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
6年前关闭。
迭代对象的属性名称的两种方法中的哪一种更好?
for (var propertyName in object) {
}
与
for (propertyName in object) {
}
我知道在第二个示例中,propertyName变成了全局变量,这是可以避免的,所以我想第一个会更好,对吧?
最佳答案
这个问题可以简化为:
var a = 0; // option 1
b = 0; // option 2
如你所说:
选项1中的
var
限制了新变量的范围;它还允许阴影;选项2将产生一个新的全局变量,或者将值
0
分配给范围内的任何名为b
的现有变量。因此,选项1确实是“更好的”。
(但是,值得注意的是,在第一个示例中,
propertyName
的范围将是封闭函数的范围,而不是循环体或任何封闭的条件块的范围。)关于javascript - 为(对象中的var propertyName)与为(对象中的propertyName)? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8521796/
10-09 20:09