no-caller
Запретить использование arguments.caller или arguments.callee
Использование arguments.caller и arguments.callee делает невозможными некоторые оптимизации кода. Они объявлены устаревшими в будущих версиях JavaScript, а их использование запрещено в ECMAScript 5 в строгом режиме.
function foo() {
const 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.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-caller