Ядро JavaScript 1.5. Справочник

Arguments.caller


Специфицирует имя функции, которая вызвала выполняемую в данный момент функцию.

Свойство из Реализовано в

JavaScript 1.1, NES 2.0

Не рекомендуется в JavaScript 1.3

Описание

caller больше не используется.

Свойство caller доступно только внутри тела функции.

Если выполняемая в данный момент функция была вызвана с верхнего уровня программы JavaScript, caller имеет значение null.

Ключевое слово this не ссылается на выполняемую в данный момент функцию, поэтому Вы обязаны обращаться к функциям и к объектам Function по имени, даже в теле функции.

Свойство caller это ссылка на вызывающую функцию, поэтому:

  • Если Вы используете его в контексте строки, Вы получите результат вызова FunctionName.toString. То есть - декомпилированную каноническую исходную форму функции.

  • Вы можете также использовать вызывающую функцию, если знаете, какие аргументы ей могут понадобиться. Таким образом, вызываемая функция может вызвать вызвавшую её функцию без знания имени конкретного вызывающего, предполагая, что она знает, что все её вызыватели имеют ту же форму и построение и что они не будут вызывать вызванную функцию ещё раз безусловно (что может привести к бесконечному зацикливанию).

  • Примеры

    Проверяется значение свойства caller функции:

    Function myFunc() {

       if (arguments.caller == null) {

          return ("Функция была вызвана с верхнего уровня!")

       } else return ("this Function's caller was " + arguments.caller)

    }


    См. также

    .



    Содержание раздела