Eslint
规则 | Rules

no-native-reassign

禁止重新分配本地对象(no-native-resssign)

此规则在 ESLint v3.3.0 中已弃用,并由 no-global-assign 规则取代。

JavaScript 环境包含许多内置的全局变量,例如window在浏览器和process Node.js 中。在几乎所有情况下,您都不想为这些全局变量赋值,因为这样做可能会导致无法访问重要的功能。例如,您可能不想在浏览器代码中执行此操作:

window = {};

虽然window的例子很明显,但 JavaScript 环境经常提供数百个内置全局对象。很难知道你是否在分配一个全局变量。

规则细节

规则不允许修改只读全局变量。

ESLint有能力将全局变量配置为只读。

  • 指定环境

  • 指定全局

规则的错误代码示例:

/*eslint no-native-reassign: "error"*/ Object = null undefined = 1

/*eslint no-native-reassign: "error"*/ /*eslint-env browser*/ window = {} length = 1 top = 1

/*eslint no-native-reassign: "error"*/ /*globals a:false*/ a = 1

规则的正确代码示例:

/*eslint no-native-reassign: "error"*/ a = 1 var b = 1 b = 2

/*eslint no-native-reassign: "error"*/ /*eslint-env browser*/ onload = function() {}

/*eslint no-native-reassign: "error"*/ /*globals a:true*/ a = 1

选项

规则接受一个exceptions选项,该选项可用于指定允许重新分配的内建列表:

{ "rules": { "no-native-reassign": ["error", {"exceptions": ["Object"]}] } }

何时不使用它

如果您尝试覆盖其中一个本机对象。

相关规则

  • no-extend-native

  • no-redeclare

  • no-shadow

版本

该规则在 ESLint 0.0.9中引入。

资源