当我在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中运行。代码是模块模式,就像this回答一样。
编辑:首先声明一个变量可能没用,因为命名空间内的函数有时会更改局部变量而不是公共名称空间中的变量,对不对?不过,我想知道为什么Netbeans会给我一个错误。