JavaScriptのFunction()コンストラクタとは?使い方をサンプルコードで解説
JavaScriptのFunction()コンストラクタは、新しい関数オブジェクトを動的に生成するために使用されます。コンストラクタに渡された引数は、関数が作成されるタイミングで解析(パース)されます。
基本的な構文
Function()コンストラクタでは、最後の引数に関数本体(実行したい処理)を文字列として指定し、それ以前の引数には仮引数名を指定します。
var func = new Function('引数1', '引数2', 'return 処理内容');サンプルコード
以下のコードを実行すると、Function()コンストラクタを使った関数の作成方法を実際に確認できます。この例では、3つの引数を受け取って掛け合わせる関数を動的に生成しています。
<html>
<body>
<script>
var num = new Function('p', 'q', 'r', 'return p * q * r');
document.write("掛け算の結果: "+num(5, 2, 9));
</script>
</body>
</html>このコードを実行すると、ブラウザ上に「掛け算の結果: 90」と表示されます(5 × 2 × 9 = 90)。
使用時の注意点
Function()コンストラクタは文字列からコードを生成するため、eval()と同様にセキュリティリスクやパフォーマンス低下を招く可能性があります。また、関数内からローカルスコープの変数にはアクセスできず、グローバルスコープでのみ評価される点にも注意が必要です。特別な理由がない限り、通常の関数宣言や関数式を使用することが推奨されます。
-
JavaScriptの関数式(Function Expression)とは?特徴と使い方を解説
JavaScriptにおける関数式(Function Expression)とは、関数を変数に代入して定義する方法のことです。代入された関数は、その変数名を使って後から呼び出すことができます。 関数式の主な特徴 関数を変数に格納し、変数名を指定して呼び出せる 通常の関数宣言(function declaration)と異なり、ホイスティング(巻き上げ)が行われないため、定義よりも前に呼び出すことはできない 多くの場合、名前を持たない「無名関数(匿名関数)」として定義される コールバック関数や即時実行関数(IIFE)など、さまざまな場面で活用できる この「ホイスティングされない」という点が重
-
JavaScriptのクロージャとは?仕組みと実装例をわかりやすく解説
クロージャとはJavaScriptにおけるクロージャ(Closure)とは、外側の関数の実行が完了して値を返した後であっても、内側の関数から外側の関数のスコープ(変数)にアクセスできる仕組みのことです。言い換えれば、内側の関数は、外側の関数の変数に対して常にアクセスできるということです。この性質を活用することで、データを外部から直接操作されないように隠蔽したり、関数の呼び出し間で状態を保持する処理を実現したりすることが可能になります。クロージャのサンプルコード以下は、JavaScriptでクロージャを使用した具体的なコード例です。ボタンをクリックすると、クロージャによって保持された値を使って2