no-caller
禁止使用 arguments.caller
或 arguments.callee
使用 arguments.caller
和 arguments.callee
會使幾個程式碼最佳化變得不可能。它們在 JavaScript 的未來版本中已被棄用,並且在 ECMAScript 5 的嚴格模式下禁止使用。
function foo() {
var callee = arguments.callee;
}
規則詳情
此規則旨在透過禁止使用 arguments.caller
和 arguments.callee
來阻止使用已棄用和非最佳程式碼。因此,當使用 arguments.caller
和 arguments.callee
時,它會發出警告。
此規則的不正確程式碼範例
在遊樂場中開啟
/*eslint no-caller: "error"*/
function foo(n) {
if (n <= 0) {
return;
}
(n - 1);
}
[1,2,3,4,5].map(function(n) {
return !(n > 1) ? 1 : (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 v0.0.6 中引入的。