Ошибка Ссылки: устаревший вызывающий объект или использование аргументов

Message(сообщение)

TypeError(Ошибка Типа): 'arguments', 'callee' и 'caller' являются ограниченными свойствами функции и не могут быть доступны в этом контексте (EDGE)
Warning: ReferenceError(Ошибка Ссылки): deprecated caller usage (устаревшие использование вызывающего абонента Firefox)
Warning: ReferenceError(Ошибка Ссылки): deprecated arguments usage (использование устаревших аргументов Firefox)
TypeError(Ошибка Типа): 'callee' и 'caller' (не может быть доступен в строгом режиме safari)

Error type (Тип ошибки)

Предупреждение строгого режима, при котором произошла операция ReferenceError выполнение JavaScript не будет остановлено.

What went wrong?(Что пошло не так?)

В строгом режиме используются свойства Function.caller или Function.arguments которых не должны быть. Они являются устаревшими, потому что они утечка вызывающей функции, являются нестандартными, и их трудно оптимизировать, и это потенциально опасный для производительности компонент.

Examples(Примеры)

Устаревшая function.caller или arguments.callee.caller

Function.caller и arguments.callee.caller являются устаревшими (Дополнительные сведения см. в справочных статьях).

js
"use strict";

function myFunc() {
  if (myFunc.caller == null) {
    return "The function was called from the top!";
  } else {
    return "This function's caller was " + myFunc.caller;
  }
}

myFunc();
// Warning: ReferenceError: устаревшее использование вызывающего абонента
// "функция была вызвана сверху!"

Function.arguments

Function.arguments является устаревшим (Дополнительные сведения см. в справочной статье).

js
"use strict";

function f(n) {
  g(n - 1);
}

function g(n) {
  console.log("before: " + g.arguments[0]);
  if (n > 0) {
    f(n);
  }
  console.log("after: " + g.arguments[0]);
}

f(2);

console.log("returned: " + g.arguments);
// Warning: ReferenceError: использование устаревших аргументов

Смотрите также