由于未定义的变量,JSLint文件失败

时间:2011-05-06 10:14:25

标签: javascript enums jslint

我刚刚开始将JSLint放入我的构建管道中,它非常棒。虽然它已经在我的大多数文件中指出了一些不是错误的东西,尽管它会将其视为一个错误。我已经改变了我的构造函数,现在接受这个对象的实例,所以测试通过了,但是我不确定我是否真的应该这样做,就像在所有其他主要语言中我都不需要这样做。

我将不得不为此添加更多的上下文,因为它有任何意义,所以这里。

我最接近jum中的Enum,它基本上是一个带有常量加载的全局范围的JSON样式变量,它用于描述事件类型,而不是每个想要引发/收听的类必须放置硬编码字符串的事件,它只能使用此 enum 变量中的常量。正如我刚才提到的,我有这些使用这个静态枚举的类,但是他们只是使用了这个变量的全局版本,而不是通过构造函数传递的本地实例,这就是我的问题开始了,就像在实际的应用程序中我知道的那样,enum文件将被包含在内,这将使它可以全局访问。但是JSLint没有这方面的上下文,因此它只看到一个单独的文件而不用担心外部依赖,因为它认为这些是坏的,在任何其他语言中都是如此,但在JS中,如果没有全局,你就无法实现同样的事情。变量(据我所知)。

正如我最初所说,我现在已经将这个枚举添加到构造函数中以让JSLint传递文件,但是只是感觉有点错误传递它,但也许这是因为我认为它是一个普通的开发人员和不是一个JavaScript开发人员...

现在我应该坚持这一点,并将其传递给构造函数,并在我的测试中进行模拟,或者我应该采用应该始终存在的方法吗?

我确信这将取决于人们的个人意见,但我很高兴知道我是不是一个白痴,应该把每个文件保存为自己的孤岛,或者是否有办法让我拥有自己的蛋糕,吃它。

2 个答案:

答案 0 :(得分:7)

我发现JSLint支持注释来告诉全局变量:

/*globals myGlobal*/

我决定只使用我的枚举作为一个全局,并继续处理更重要的事情。

答案 1 :(得分:0)

JavascriptLint在这方面大大改进了JSLint,因为它允许您定义文件间依赖关系:

  

如果脚本从另一个脚本引用变量,函数或对象,则需要在脚本中添加 / * jsl:import PathToOtherScript * / 注释。这告诉JavaScript Lint检查在另一个脚本中声明的项目。根据当前脚本的路径解析相对路径。

请参阅:http://javascriptlint.com/docs/index.htm