Прикладной код

Появилась ошибка «Использование arguments.callee устарело»

Появилась ошибка «Использование arguments.callee устарело»

При написании или редактировании кода возникает ошибка «Использование arguments.callee устарело».

Причина

Свойства arguments.caller и arguments.callee устарели и не используются при написании кода.

Решение

Используйте объявленные в коде функции.

Пример

Код с ошибкой.

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;
});

Код без ошибки.

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;
});
Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.