Function

  • Revision slug: Справочник_по_JavaScript_1.5/Глобальные_объекты/Function
  • Revision title: Function
  • Revision id: 273277
  • Created:
  • Creator: Skorney
  • Is current revision? Да
  • комментировать 12 words added

Revision Content

Резюме

Каждая функция в JavaScript это фактически объект Function.

Синтаксис

new Function ([arg1[, arg2{{ mediawiki.external(', ... argN') }}],] functionBody)

Параметры

arg1, arg2, ... argN
Имена, которые будут использоваться функцией как формальные имена аргументов. Каждое из них должно быть строкой, которая соответствует правомерному идентификатору JavaScript или список таких строк, разделенных запятыми; например "x", "Значение", или "a,b".
functionBody
Строка, содержащая JavaScript сценарии, включая определение функций.

Описание

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

Все аргументы, переданные функции, рассматриваются как имена идентификаторов параметров в функцию, которая будет создана, в том порядке, в котором они прошли.

Вызов конструктора Function в качестве функции (без использования оператора new) имеет тот же самый эффект как и вызов его в качестве конструктора.

Свойства

{{ Js_see_prototype("Function", "Properties") }}

prototype
Позволяет расширение всех объектов Function.

{{ JSInherits("Function", "Properties", "caller", "constructor", "length", "name") }}

Методы

{{ Js_see_prototype("Function", "Methods") }}

Несмотря на то, что объект Function не предусматривает никаких собственных методов, он наследует методы через связь с прототипом.

{{ JSInherits("Function", "Methods", "apply", "call", "toSource", "toString", "valueOf") }}

{{ JSInherits("Object", "Methods", "__defineGetter__", "__defineSetter__", "hasOwnProperty", "isPrototypeOf", "__lookupGetter__", "__lookupSetter__", "__noSuchMethod__", "propertyIsEnumerable", "unwatch", "watch") }}

Свойства и методы объекта Function

Свойства и методы объекта Function наследуются от Function.prototype. Как и во всех конструкторах, вы можете изменить объект-прототип конструктора для внесения изменений во все свойства и методы объекта Function.

Свойства

{{ page('en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype', 'Properties') }}

Методы

{{ page('en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype', 'Methods') }}

Примеры

Пример: Определение аргументов при помощи конструктора Function

Следующий код создает объект Function который принимает два аргумента.

var multiply = new Function("x", "y", "return x * y");
var theAnswer = multiply(7, 6);

Аргументы "x" и "y" являются формальными именами аргументов которые используются в теле функции, "return x * y".

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

{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Function", "es": "es/Referencia_de_JavaScript_1.5/Objetos_globales/Function", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Function", "ja": "ja/Core_JavaScript_1.5_Reference/Global_Objects/Function", "pl": "pl/Dokumentacja_j\u0119zyka_JavaScript_1.5/Obiekty/Function" } ) }}

Revision Source

<h2 id="Summary" name="Summary">Резюме</h2>
<p>Каждая функция в JavaScript это фактически объект <code>Function</code>.</p>
<h2 id="Syntax" name="Syntax">Синтаксис</h2>
<p><code>new Function ([<em>arg1</em>[, <em>arg2</em>{{ mediawiki.external(', ... <i>argN</i>') }}],] <em>functionBody</em>)</code></p>
<h2 id="Parameters" name="Parameters">Параметры</h2>
<dl> <dt><code>arg1, arg2, ... arg<em>N</em></code></dt> <dd>Имена, которые будут использоваться функцией как формальные имена аргументов. Каждое из них должно быть строкой, которая соответствует правомерному идентификатору JavaScript или список таких строк, разделенных запятыми; например "<code>x</code>", "<code>Значение</code>", или "<code>a,b</code>".</dd>
</dl>
<dl> <dt><code>functionBody</code></dt> <dd>Строка, содержащая JavaScript сценарии, включая определение функций.</dd>
</dl>
<h2 id="Description" name="Description">Описание</h2>
<p>Объекты<code> Function</code>, созданные при помощи конструктора <code>Function</code> будут разобраны на этапе создания функции. Это менее эффективно, чем объявление функции и вызов ее в коде, потому что функции, объявленные через формирование функции, разбираются вместе с остальной частью кода.</p>
<p>Все аргументы, переданные функции, рассматриваются как имена идентификаторов параметров в функцию, которая будет создана, в том порядке, в котором они прошли.</p>
<p>Вызов конструктора <code>Function</code> в качестве функции (без использования оператора <code>new</code>) имеет тот же самый эффект как и вызов его в качестве конструктора.</p>
<h2 id="Properties" name="Properties">Свойства</h2>
<p>{{ Js_see_prototype("Function", "Properties") }}</p>
<dl> <dt><a href="/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype" title="en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype">prototype</a></dt> <dd>Позволяет расширение всех объектов <code>Function</code>.</dd>
</dl>
<p>{{ JSInherits("Function", "Properties", "caller", "constructor", "length", "name") }}</p>
<h2 id="Methods" name="Methods">Методы</h2>
<p>{{ Js_see_prototype("Function", "Methods") }}</p>
<p>Несмотря на то, что объект <code>Function</code> не предусматривает никаких собственных методов, он наследует методы через связь с прототипом.</p>
<p>{{ JSInherits("Function", "Methods", "apply", "call", "toSource", "toString", "valueOf") }}</p>
<p>{{ JSInherits("Object", "Methods", "__defineGetter__", "__defineSetter__", "hasOwnProperty", "isPrototypeOf", "__lookupGetter__", "__lookupSetter__", "__noSuchMethod__", "propertyIsEnumerable", "unwatch", "watch") }}</p>
<h2 id="Function_instances" name="Function_instances">Свойства и методы объекта <code>Function</code></h2>
<p>Свойства и методы объекта <code>Function</code> наследуются от <a href="/en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype" title="en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype"><code>Function.prototype</code></a>. Как и во всех конструкторах, вы можете изменить объект-прототип конструктора для внесения изменений во все свойства и методы объекта <code>Function</code>.</p>
<h3 id=".D0.A1.D0.B2.D0.BE.D0.B9.D1.81.D1.82.D0.B2.D0.B0">Свойства</h3>
<p>{{ page('en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype', 'Properties') }}</p>
<h3 id=".D0.9C.D0.B5.D1.82.D0.BE.D0.B4.D1.8B">Методы</h3>
<p>{{ page('en/Core_JavaScript_1.5_Reference/Global_Objects/Function/prototype', 'Methods') }}</p>
<h2 id="Examples" name="Examples">Примеры</h2>
<h3 id="Example:_Specifying_arguments_with_the_Function_constructor" name="Example:_Specifying_arguments_with_the_Function_constructor">Пример: Определение аргументов при помощи конструктора <code>Function</code></h3>
<p>Следующий код создает объект <code>Function</code> который принимает два аргумента.</p>
<pre class="eval">var multiply = new Function("x", "y", "return x * y");
var theAnswer = multiply(7, 6);
</pre>
<p>Аргументы "<code>x</code>" и "<code>y</code>" являются формальными именами аргументов которые используются в теле функции, "<code>return x * y</code>".</p>
<h2 id="See_also" name="See_also">Смотрите также</h2>
<ul> <li><a href="/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_Operator" title="en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/function_Operator">function Operator</a></li> <li><a href="/en/Core_JavaScript_1.5_Reference/Statements/function" title="en/Core_JavaScript_1.5_Reference/Statements/function">function Statement</a></li> <li><a href="/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope" title="En/Core_JavaScript_1.5_Reference/Functions_and_function_scope">Functions</a></li>
</ul>
<p>{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Function", "es": "es/Referencia_de_JavaScript_1.5/Objetos_globales/Function", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Objets_globaux/Function", "ja": "ja/Core_JavaScript_1.5_Reference/Global_Objects/Function", "pl": "pl/Dokumentacja_j\u0119zyka_JavaScript_1.5/Obiekty/Function" } ) }}</p>
Revert to this revision