版本

no-caller

禁止使用 arguments.callerarguments.callee

使用 arguments.callerarguments.callee 會使數個程式碼最佳化變得不可能。它們在未來版本的 JavaScript 中已被棄用,並且在嚴格模式下的 ECMAScript 5 中禁止使用。

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

規則詳細資訊

此規則旨在透過禁止使用 arguments.callerarguments.callee 來勸阻使用已棄用和次優的程式碼。因此,當使用 arguments.callerarguments.callee 時,它會發出警告。

此規則的不正確程式碼範例

在 Playground 中開啟
/*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;
});

此規則的正確程式碼範例

在 Playground 中開啟
/*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 中引入。

資源

變更語言