JS命名空间Netbeans变量未声明

Posted

技术标签:

【中文标题】JS命名空间Netbeans变量未声明【英文标题】:JS namespace Netbeans variable not declared 【发布时间】: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 会给我一个错误。

【问题讨论】:

【参考方案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

以上是关于JS命名空间Netbeans变量未声明的主要内容,如果未能解决你的问题,请参考以下文章

名称空间

C++ Primer 5th笔记(chap 18 大型程序工具)未命名的命名空间unnamednamespace

《JS权威指南学习总结--8.5 作为命名空间的函数》

为啥内联未命名的命名空间?

0090 JS变量的使用:声明赋值初始化语法扩展命名规范

static关键字在命名空间范围内没用吗?