Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
* Some parts of this feature may have varying levels of support.
Function オブジェクトは関数についてのメソッドを提供します。 JavaScript では、すべての関数が実際には Function オブジェクトです。
新しい Function オブジェクトを生成します。コンストラクターを直接呼び出すと関数を動的に生成することができますが、セキュリティや、 eval() と似た性能の (ただし、はるかに重要性の低い) 問題を抱えます。ただし eval() とは異なり、 Function コンストラクターはグローバルスコープで実行される関数のみを生成します。
以下のプロパティは Function.prototype で定義されており、すべての Function インスタンスで共有されています。
Function.prototype.argumentsこの関数に渡された引数を表します。厳格モード、アロー関数、非同期関数、ジェネレーター関数については、 arguments プロパティにアクセスすると TypeError が発生します。代わりに関数のクロージャ内で arguments オブジェクトを使用してください。
Function.prototype.caller現在実行している関数を呼び出した関数を返します。厳格モード、アロー関数、非同期関数、ジェネレーター関数については、 arguments プロパティにアクセスすると TypeError が発生します。
Function.prototype.constructorインスタンスオブジェクトを作成したコンストラクター関数。 Function のインスタンスの場合、初期値は Function コンストラクターです。
以下のプロパティは、それぞれの Function インスタンスが自分自身で持つプロパティです。
displayName 省略可関数の表示名です。
length関数によって期待される引数の数を指定します。
name関数の名前です。
prototypenew 演算子付きでコンストラクターとして関数を使用する場合に使用されます。新しいオブジェクトのプロトタイプとなります。
指定された this 値とオプションで引数を配列(または配列風オブジェクト)として渡し、指定された関数を呼び出します。
Function.prototype.bind()新しい関数を作成し、呼び出されたときに、 this を指定された値に設定します。オプションで、指定された一連の引数が、新しく結びつけられた関数が呼び出されたときに与えられた引数の前に付加されます。
Function.prototype.call()指定された this 値とオプションで引数を渡し、指定された関数を呼び出します。
Function.prototype.toString()関数のソースコードを表す文字列を返します。 Object.prototype.toString メソッドを上書きします。
Function.prototype[Symbol.hasInstance]()コンストラクター関数が、オブジェクトをコンストラクターのインスタンスの 1 つとして認識するかどうかを判断するための、既定の手順を指定します。 instanceof 演算子によって呼び出されます。
Function コンストラクターで生成された関数は、生成コンテキストにクロージャを作りません。つまり常にグローバルスコープで生成されます。これを実行すると、 Function コンストラクターの呼び出し元のスコープは入らず、自身のローカル変数とグローバル変数だけにアクセスできます。これは関数式のコードに eval() を使うのとは異なります。
このコードはウェブブラウザーでは動作しますが、 Node.js では f1() で ReferenceError が発生します。 x が見つからないためです。これは Node の最上位のスコープがグローバルスコープではなく、 x はモジュールのローカルになるからです。
| ECMAScript® 2027 Language Specification # sec-function-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年9月18日 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.