为什么下面的工作有效
var NameSpace = NameSpace || {};
NameSpace.Foo = 2;
但这不是吗?
var NameSpace = NameSpace || {};
var NameSpace.Foo = 2;
如能深入了解变量减速在命名空间方面的内部工作原理,我们将不胜感激。
最佳答案
JavaScript 没有 namespace 。您的第一行代码声明了一个名称为 Namespace
且值为对象的变量:
var NameSpace = NameSpace || {};
然后您在该对象上创建一个属性 Foo
,并为其赋值:
NameSpace.Foo = 2;
底线:变量和对象属性是不同的东西(除其他区别外,变量有范围,而属性没有)。 var
statement仅用于声明变量。
关于javascript - 为什么在声明子 namespace 时不能使用 var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304429/