Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

Function

BaselineWidely available *

TheFunction object provides methods forfunctions. In JavaScript, every function is actually aFunction object.

Constructor

Function()

Creates a newFunction object. Calling the constructor directly can create functions dynamically but suffers from security and similar (but far less significant) performance issues toeval(). However, unlikeeval(), theFunction constructor creates functions that execute in the global scope only.

Instance properties

These properties are defined onFunction.prototype and shared by allFunction instances.

Function.prototype.argumentsDeprecatedNon-standard

Represents the arguments passed to this function. Forstrict, arrow, async, and generator functions, accessing thearguments property throws aTypeError. Use thearguments object inside function closures instead.

Function.prototype.callerDeprecatedNon-standard

Represents the function that invoked this function. Forstrict, arrow, async, and generator functions, accessing thecaller property throws aTypeError.

Function.prototype.constructor

The constructor function that created the instance object. ForFunction instances, the initial value is theFunction constructor.

These properties are own properties of eachFunction instance.

displayNameNon-standardOptional

The display name of the function.

length

Specifies the number of arguments expected by the function.

name

The name of the function.

prototype

Used when the function is used as a constructor with thenew operator. It will become the new object's prototype.

Instance methods

Function.prototype.apply()

Calls a function with a giventhis value and optional arguments provided as an array (or anarray-like object).

Function.prototype.bind()

Creates a new function that, when called, has itsthis keyword set to a provided value, optionally with a given sequence of arguments preceding any provided when the new function is called.

Function.prototype.call()

Calls a function with a giventhis value and optional arguments.

Function.prototype.toString()

Returns a string representing the source code of the function.Overrides theObject.prototype.toString method.

Function.prototype[Symbol.hasInstance]()

Specifies the default procedure for determining if a constructor function recognizes an object as one of the constructor's instances. Called by theinstanceof operator.

Examples

Difference between Function constructor and function declaration

Functions created with theFunction constructor do not create closures to their creation contexts; they always are created in the global scope. When running them, they will only be able to access their own local variables and global ones, not the ones from the scope in which theFunction constructor was created. This is different from usingeval() with code for a function expression.

js
// Create a global property with `var`var x = 10;function createFunction1() {  const x = 20;  return new Function("return x;"); // this `x` refers to global `x`}function createFunction2() {  const x = 20;  function f() {    return x; // this `x` refers to the local `x` above  }  return f;}const f1 = createFunction1();console.log(f1()); // 10const f2 = createFunction2();console.log(f2()); // 20

While this code works in web browsers,f1() will produce aReferenceError in Node.js, asx will not be found. This is because the top-level scope in Node is not the global scope, andx will be local to the module.

Specifications

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

Browser compatibility

See also

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp