no-native-reassign

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

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

window = {};

虽然 window 之类的示例很明显,但 JavaScript 环境通常会提供数百个内置的全局对象。很难知道您是否分配给全局变量。

规则详情

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

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

    sS5fj/43kfLTu5ODzwwIrixAqMvINwrPObvMmuRxg2b4QzZIwgN3Ss8oYK+H3Zry/Q+18PdQGYMFl//sjf7DXiWzNGyP1vbf6cG+VdQAq5nOooakqqYNjbI1JRuW2pD2Tqw0Y7aHKtiY7DAEonMhhG6mUPIVO9nfoUoZ3/MtPxnv0Vyh482CVV8fG3Oo5FgXvGWT7dQ2oqTB8pxhQwdw/w==

r6hi7htUov+vPER817DMpSRTvHu5NMFNJX5PKtsQSh4quBRUaItxaVoNlZcysCNG

/*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"*/
/*global a:readonly*/

a = 1

6RXgRVcYea97/4k5PNW/nItJttC+MHc4vVjxm8VW+ghbeqd3KsyvO/XAfiqXOEJI

/*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"*/
/*global a:writable*/

a = 1

选项

kdJCzqdGTxOi9b7T95WvbuIPqgvklgqiJ4f1ToG8KJ3Wl7T6lP6DAhaLQfuTPcn8JOggF21gmfQVjJH6CWUOCtOH3+UnvnnvJWOti1bcM76O3OvhzuxINLsTf4HSMqS/iqamG4clKSayHOvDohEoQw==

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

何时不使用

QXSV2+BRr4T+M3OVf8wXvAwsv9U9x8lsKo2NKmrFhc2QI6HQmRrkEcYd6Zj3AYz2