Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
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 создаёт функции, выполняемые только в глобальной области видимости.
Имена, используемые функцией в качестве имён формальных аргументов. Каждое имя должно быть строкой с правильным 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, который принимает два аргумента.
Аргументы "a" и "b" являются именами формальных аргументов, которые используются в теле функции, "return a + b".
| ECMAScript® 2027 Language Specification # sec-function-constructor |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 июн. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.