Eslint
规则 | Rules

no-caller

禁止使用调用者/被调用者(no-caller)

不可能使用arguments.callerarguments.callee进行几次代码优化。在未来的JavaScript版本中它们已被弃用,并且在严格模式下禁止在ECMAScript 5中使用它们。

function foo() { var callee = arguments.callee; }

规则细节

此规则旨在阻止使用已弃用和次优代码,但不允许使用arguments.callerarguments.callee。因此,它会发出警告时arguments.callerarguments.callee被使用。

此规则的错误代码示例:

/*eslint no-caller: "error"*/ function foo(n) { if (n <= 0) { return; } arguments.callee(n - 1 } [1,2,3,4,5].map(function(n) { return !(n > 1) ? 1 : arguments.callee(n - 1) * n; }

此规则的正确代码示例:

/*eslint no-caller: "error"*/ function foo(n) { if (n <= 0) { return; } foo(n - 1 } [1,2,3,4,5].map(function factorial(n) { return !(n > 1) ? 1 : factorial(n - 1) * n; }

版本

这条规则是在ESLint 0.0.6中引入的。

资源