【问题标题】:JS namespace Netbeans variable not declaredJS命名空间Netbeans变量未声明
【发布时间】:2016-04-30 05:47:06
【问题描述】:

当我在 JavaScript 中定义命名空间时,Netbeans 给出了一个 global variable not declared 错误,而我认为它不应该。这是为什么呢?
演示代码:

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 中工作。代码是 Module Pattern,类似于 this 答案中的语法。

编辑:首先声明一个变量可能没有用,因为命名空间内的函数有时会更改局部变量而不是公共命名空间中的变量,对吗?不过,我想知道为什么 Netbeans 会给我一个错误。

【问题讨论】:

    标签: javascript netbeans namespaces javascript-namespaces


    【解决方案1】:

    您可以在顶部添加注释,告诉 Netbeans 忽略该错误。 例如使用角度时

    /* global angular */
    

    将防止诸如此类的错误

    angular.module('Module', []);
    

    【讨论】:

    • 那么,这是 Netbeans 中的错误吗?我的意思是,我在错误之前的行声明了变量(类),所以它应该在范围内可用,对吧? (后来通过MyNamespace.MyClass
    【解决方案2】:

    我使用的是 NetBeans IDE 8.2(内部版本 201705191307)

    如果您想完全忽略此类错误,我建议您这样做:

    Tools > Options > Editor > Hints > Uncheck "The global variable is not declared"
    

    它对我有用。

    【讨论】:

    • 由于“parseFloat”不是一个全局函数,而是一个本地函数,被错误地检测为全局函数,这可能被认为是一个错误,并且搜索特定错误会禁用所有全局警告吗?至少对我来说不是一个选择,但对于想要这样做的人来说可能是实用的,但警告他们:D
    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多