Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】Function::Function()関数の使い方

Function関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Function関数は、JavaScriptにおいて、新しい関数オブジェクトを動的に作成するためのビルトインコンストラクタ関数です。この関数を使用することで、プログラムの実行中に文字列として与えられたコードから関数を生成できます。

利用方法は、new Function(引数名1, 引数名2, ..., 関数の本体のコード) の形式です。最初の引数から最後の引数の直前までは、作成する関数が受け取る引数の名前を文字列で指定します。例えば、'a'や'b'のように記述します。そして、最後の引数には、その関数が実行する処理の内容をJavaScriptコードとして記述した文字列を渡します。例として、new Function('x', 'y', 'return x * y;') と記述すると、xyという2つの引数を受け取り、それらを乗算して返す関数が生成されます。

Function関数は、通常の関数宣言や関数式とは異なり、プログラムの実行中に動的にコードを組み立てて関数として実行できる柔軟性を提供します。しかし、文字列として渡されたコードは、Function関数が呼び出された環境のローカルスコープではなく、常にグローバルスコープで評価されます。そのため、Function関数内でその呼び出し元のスコープにある変数へ直接アクセスすることはできません。また、文字列によるコードの生成と評価は、セキュリティ上のリスク(例: 意図しないコードの実行)やパフォーマンスへの影響も考慮する必要があるため、主に特定の高度な用途でのみ利用されることが推奨されます。

構文(syntax)

new Function('a', 'b', 'return a + b;');

引数(parameters)

...args

  • ...args: Function コンストラクタに渡される、関数本体として実行されるコードや、関数定義のための引数リストなど、任意の引数。

(注: Function コンストラクタの引数は、可変長引数であり、その内容は実行される関数コードそのものや、その関数が受け取る引数名(文字列)になります。これらの引数は、実行時に動的に解釈されるため、個別の引数名と型を指定する形式での説明は一般的ではありません。...args は、これらの全ての引数をまとめて表すための一般的な記法です。)

戻り値(return)

Function

Functionコンストラクタは、新しいFunctionオブジェクトを生成します。この新しいFunctionオブジェクトは、指定された引数リストと関数本体を持つ実行可能なコードを表します。

関連コンテンツ