disallow reassigning function
declarations (no-func-assign)
The "extends": "eslint:recommended"
property in a configuration file enables this rule.
JavaScript functions can be written as a FunctionDeclaration function foo() { ... }
or as a FunctionExpression var foo = function() { ... };
. While a JavaScript interpreter might tolerate it, overwriting/reassigning a function written as a FunctionDeclaration is often indicative of a mistake or issue.
function foo() {} foo = bar;
Rule Details
This rule disallows reassigning function
declarations.
Examples of incorrect code for this rule:
/*eslint no-func-assign: "error"*/ function foo() {} foo = bar; function foo() { foo = bar; } var a = function hello() { hello = 123; };
Examples of incorrect code for this rule, unlike the corresponding rule in JSHint:
/*eslint no-func-assign: "error"*/ foo = bar; function foo() {}
Examples of correct code for this rule:
/*eslint no-func-assign: "error"*/ var foo = function () {} foo = bar; function foo(foo) { // `foo` is shadowed. foo = bar; } function foo() { var foo = bar; // `foo` is shadowed. }
Version
This rule was introduced in ESLint 0.0.9.
Resources
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-func-assign