72158e7b

Объект Function


Объект Function

Предопределённый объект Function специфицирует строку кода JavaScript, компилируемую как функция.

Для создания Function-объекта:

functionObjectName = new Function ([arg1, arg2, ... argn], functionBody)

functionObjectName это имя переменной или свойства существующего объекта. Это может быть также объект с последующим именем обработчика события в нижнем регистре, например, window.onerror.

arg1, arg2, ... argn это аргументы, используемые функцией как имена формальных аргументов. Каждое обязано быть строкой, соответствующей верному идентификатору JavaScript; например "x" или "theForm".

functionBody это строка, специфицирующая код JavaScript, компилируемый как тело функции.

Function-объекты вычисляются при каждом использовании. Это менее эффективно, чем объявление функции и вызов её в коде, поскольку объявленная функция компилируется.

Помимо рассмотренного здесь объявления, Вы можете также использовать оператор function. См. книгу Клиентский JavaScript. Справочник.

Следующий код присваивает функцию переменной setBGColor. Эта функция устанавливает цвет фона текущего документа.

var setBGColor = new Function("document.bgColor='antiquewhite'")

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

var colorChoice="antiquewhite"
if (colorChoice=="antiquewhite") {setBGColor()}

Вы можете присвоить функцию обработчику события одним из следующих способов:

1. document.form1.colorButton.onclick=setBGColor2. <INPUT NAME="colorButton" TYPE="button"
VALUE="Change background color"
      onClick="setBGColor()">

Создание переменной setBGColor, показанное выше, похоже на объявление следующей функции:

function setBGColor() {
   document.bgColor='antiquewhite'
}

Вы можете вкладывать функцию в функцию. Вложенная (внутренняя) функция является private для её содержащей (внешней) функции:

  • Внутренняя функция доступна только для операторов внешней функции.

  • Внутренняя функция может использовать аргументы и переменные внешней функции. Внешняя функция не может использовать аргументы и переменные внутренней функции.



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