Function 构造函数 creates a new Function object . Calling the constructor directly can create functions dynamically, but suffers from security and similar (but far less significant) performance issues to eval 。不管怎样,不像 eval, Function constructor creates functions which execute in the global scope only.

The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

句法

new Function([arg1 [, arg2 [, ...argN]] ,] functionBody)
					

参数

arg1 , arg2 , ... argN
Names to be used by the function as formal argument names. Each must be a string that corresponds to a valid JavaScript identifier, or a list of such strings separated with a comma. For example: " x ", " theValue "—or " x,theValue ".
functionBody

A string containing the JavaScript statements comprising the function definition.

描述

Function objects created with the Function constructor are parsed when the function is created. This is less efficient than declaring a function with a 函数表达式 or function statement and calling it within your code because such functions are parsed with the rest of the code.

All arguments passed to the function are treated as the names of the identifiers of the parameters in the function to be created, in the order in which they are passed. Omitting an argument will result in the value of that parameter being undefined .

援引 Function 构造函数作为函数 (不使用 new 运算符) 有相同效果若把它作为构造函数进行援引。

范例

Specifying arguments with the Function constructor

The following code creates a Function object that takes two arguments.

// Example can be run directly in your JavaScript console
// Create a function that takes two arguments, and returns the sum of those arguments
const adder = new Function('a', 'b', 'return a + b');
// Call the function
adder(2, 6);
// 8
					

The arguments " a " and " b " are formal argument names that are used in the function body, " return a + b ".

规范

规范
ECMAScript (ECMA-262)
The definition of 'Function constructor' in that specification.

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
Function() 构造函数 Chrome 1 Edge 12 Firefox 1 IE 4 Opera 3 Safari 1 WebView Android 1 Chrome Android 18 Firefox Android 4 Opera Android 10.1 Safari iOS 1 Samsung Internet Android 1.0 nodejs Yes

图例

完整支持

完整支持

另请参阅

元数据

  • 最后修改: