Объект Function.

  Function - Функция.
  Экземпляр доступен:

  1. В выражении

        new Function(["Аргумент1"[,"Аргумент2"[, ...[, "АргументN"]]]]
          ,"Блок операторов [return Выражение значения;]")


    где:
      Функции, созданные конструктором Function, в отличии от объявленных функций, создаются в глобальной области видимости переменных. Они имеют доступ только к своим локальным переменным и переменным в глобальной области видимости. К переменным из области видимости, в которой вызывался конструктор Function, у этих функций доступа нет.

  2. В выражении

      new Object(Функция)

    где:
    • new - Ключевое слово.
    • Object - Имя функции конструктора всех объектов JavaScript.
    • Функция - Любой операнд значения функции.

  3. В любом операнде значения со значением типа function.

  4. С помощью универсального метода valueOf.
  Свойства.
  caller - Содержит экземпляр объекта Function, в теле которой вызвана функция, указанная этим экземпляром объекта.
  Таким образом, браузером создаётся стек вложений вызовов, который можно использовать если нет рекурсивных вызовов.
  Понятно, что в случае рекурсий, использование свойства caller приведёт к "перемещению" по замкнутой "петле".
  Если указанная функция вызвана не из другой функции, то свойство caller содержит значение null.

Формат записи в коде скрипта:

  • Экземпляр объекта Function.caller

Значения формата записи:

  length - Содержит общее количество аргументов, ожидаемых функцией, указанной экземпляром объекта.
  Значение имеет числовой формат.
  Общее количество аргументов функции может быть больше фактического количества значений аргументов переданных при обращении к ней.
  Фактическое количество значений аргументов переданных функции содержит свойство length соответствующего экземпляра объекта Arguments.

Формат записи в коде скрипта:

  • Экземпляр объекта Function.length

Значения формата записи:

  name - Содержит псевдоним функции.
  Значение имеет строковый формат.
  Если функция не имеет псевдонима, то свойство name содержит её имя.
  Если функция является методом объекта, то она всегда имеет псевдоним, совпадающий с именем.

Формат записи в коде скрипта:

  • Экземпляр объекта Function.name

Значения формата записи:

  prototype - Содержит ссылку на прототип объекта.
  Если эта функция будет использована как конструктор объекта, то с помощью свойства prototype, перед вызовом этой функции оператором new, можно изменить прототип этого объекта.

Формат записи в коде скрипта:

  • Экземпляр объекта Function.prototype

Значения формата записи:

  Методы.
  apply - Вызывает функцию, указанную экземпляром объекта Function, устанавливая значение, на которое будет ссылаться ключевое слово this в блоке операторов этой функции.
  Возвращает значение предусмотренное оператором return этой функции.
  Отличается от метода call форматом передачи аргументов.

Формат записи в коде скрипта:

  • Экземпляр объекта Function.apply([Объект[, Массив аргументов]])

Значения формата записи:

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

Формат записи в коде скрипта:

  • Экземпляр объекта Function.bind([Объект[, Аргумент1, Аргумент2, ..., АргументN]])

Значения формата записи:

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

Формат записи в коде скрипта:

  • Экземпляр объекта Function.call([Объект[, Аргумент1, Аргумент2, ..., АргументN]])

Значения формата записи: