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.
Ссылки
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-caller