Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. Function
  6. Конструктор Function()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Конструктор Function()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

КонструкторFunction создаёт новыйобъектFunction. Вызов конструктора напрямую позволяет создавать функции программным путём, однако такой способ представляет угрозу для безопасности, а также несёт разные (хотя не такие значительные) проблемы с производительностью при использовании сGlobal_Objects/eval. Однако в отличие от eval, конструкторFunction создаёт функции, выполняемые только в глобальной области видимости.

Интерактивный пример

const sum = new Function("a", "b", "return a + b");console.log(sum(2, 6));// Expected output: 8

Синтаксис

js
new Function(arg1, functionBody)new Function(arg1, arg2, functionBody)new Function(arg1, ... , argN, functionBody)

Параметры

arg1, arg2, ... argN

Имена, используемые функцией в качестве имён формальных аргументов. Каждое имя должно быть строкой с правильным JavaScript-значением (либоидентификатором,оставшимся параметром, илидеструктурирующим присваиванием, либо списком таких строк, разделённых запятой.

Поскольку параметры разбираются так же, как и объявления функций, допускается использование пробелов и комментариев. Например:"x", "theValue = 42", "[a, b] /* numbers */" — или"x, theValue = 42, [a, b] /* numbers */". ("x, theValue = 42", "[a, b]" также будет правильным, хотя трудно читаемым).

functionBody

Строка, содержащая инструкции JavaScript, составляющие определение функции.

Описание

ОбъектыFunction, созданные конструкторомFunction, разбираются при создании функции. Определение функции при помощивыражения function илиинструкции function и вызова её внутри вашего кода более эффективно, поскольку такие функции разбираются вместе с остальным кодом.

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

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

Примеры

Пример: указание аргументов в конструкторе Function

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

js
// Пример может быть запущен непосредственно в вашей консоли JavaScript// Создаём функцию, принимающую два аргумента, и возвращающую их суммуconst adder = new Function("a", "b", "return a + b");// Вызываем функциюadder(2, 6);// 8

Аргументы "a" и "b" являются именами формальных аргументов, которые используются в теле функции, "return a + b".

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-function-constructor

Совместимость с браузерами

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

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp