当我在JavaScript中定义命名空间时,Netbeans给出了“全局变量未声明”的错误提示,但我认为这不应该出现。这是为什么呢?
演示代码:
var MyNamespace = new function () {
var MyClass = function () {};
MyClass.SOME_CONSTANT = 9; // MyClass not defined
this.MyClass = MyClass; // MyClass not defined
};
我检查了一下,这段代码在IE(文档模式IE 5)和Edge 13中可行。这段代码是类似于此答案中的模块模式语法。
编辑:首先声明一个变量可能没有用处,因为命名空间中的函数有时会更改局部变量而不是公共命名空间中的变量,我对吗?不过,我想知道为什么Netbeans会给我一个错误。
MyNamespace.MyClass
后面调用) - SWdV