Spec-Zone.ru › ESLint

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.

Примеры неправильного кода для этого правила:

Открыть в 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.

Ссылки

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-caller

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API