Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便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