2

我正在工作项目中的一些 javascript 文件上尝试 JSLint,但遇到了如下几个错误:

JS Lint: '<var name>' is not defined

问题是该变量是在一个单独的文件中定义的,该文件在其他地方引用。例如 HTML 页面有 global.js 和 pageSpecific.js

我知道使用语法

/* global varName */ 

告诉 JSLint 是的,事实上这个变量确实存在,但在这种情况下这并不理想,因为导致这些错误的不同变量的数量(在每一页的顶部都会有这些全局变量的行)。我也不想忽略这个错误,毕竟那里可能存在一个需要注意的“真正的”未定义错误。

我的感觉是,要么有一个我不知道的 JSLint 解决方案,要么更有可能表明这个项目中 JS 的结构存在问题?'global.js' 文件(这种)是一种不好的做法吗?

想法/反馈赞赏。

4

2 回答 2

3

这表明 JS 的结构存在问题。全局变量应保持在最低限度。真正需要全局可用的东西都应该挂在一个全局对象上(这种技术在 JS 世界中称为命名空间)。

于 2012-01-18T11:38:38.283 回答
0

您还可以将全局变量列表传递到用于调用 JSLint/JSHint 的命令中,尽管更大的问题是您不应该有那么多变量污染全局范围。

于 2012-05-04T06:31:02.450 回答