当使用 jslint
分析文件时,是否有一种方法可以使用在另一个 js 文件中声明的全局变量?
目前我必须在头部声明所有全局变量,但这非常缓慢且不实用。
/* global console, myglobalvar1, othervar... */
有没有像Re-sharper那样导入其他脚本文件的方法?
/// <reference path="my.js" />
当使用 jslint
分析文件时,是否有一种方法可以使用在另一个 js 文件中声明的全局变量?
目前我必须在头部声明所有全局变量,但这非常缓慢且不实用。
/* global console, myglobalvar1, othervar... */
/// <reference path="my.js" />
JSLint可能为您提供了一个有用的代码架构改进建议。为什么不将所有这些全局变量放在同一个命名空间中呢?
而不是...
var Global1 = "spam",
Global2 = 2;
...使用...
var MyStuff = MyStuff || {};
MyStuff.Global1 = "spam";
MyStuff.Global2 = 2;
... 或者,更传统的做法是...
var MyStuff = {
Global1: "spam",
Global2: 2
};
现在您可以简单地包含...
/*global MyStuff*/
每个[其他]文件上都有相同的内容,这样就可以省去重复劳动。如果您稍后向MyStuff
添加更多内容,则已经涵盖了这些内容。如果您需要在将其视为全局变量的页面上添加一些东西到MyStuff中,那也很简单... MyStuff.NewField = "new";
您已经有很多东西从一个文件移动到另一个文件,这表明它们是一个功能单元(或几个功能单元),每个文件都需要知道。JSLint建议您将它们分组。
Global3
可以添加在项目的任何文件中,而不管MyStuff
定义在哪里,而JSLint仅在文件范围内进行lint。相信我,一旦您的代码变得足够复杂,有意识地使用命名空间来维护关注点分离是非常必要的,就像OP的global
行所示!;^) - ruffin