Js コード
var a = new Function("document.write(a)");
var b = function(){document.write(b);}
function c(){
document.write(c) ; 関数本体が与えられた関数。
最初の方法では、いくつかの情報を検索した後、要約を作成します。
Function は Javascript の Unction (大文字と小文字に注意) であり、そこから派生したものです (関数はもちろん参照型です)。個人的な推測は、2 番目のタイプの匿名関数参照に似ています。
関数インスタンスの構築方法:
varinstanceName = new Function([arg1 [, arg2 [, ...]] ,] body);
最初のいくつかの項目はパラメータで、最後の項目は関数本体です。 Jsコード
var myAdd = new Function("x", "y", "return x + y");
var sum = myAdd(17, 34);
Function() コンストラクターを使用すると、関数ステートメントのプリコンパイルされた関数本体に制限されることなく、関数を動的に作成してコンパイルできます。この副作用として、関数が呼び出されるたびに、Function() コンストラクターがその関数をコンパイルする必要があることです。したがって、ループ本体や頻繁に使用される関数内でこのコンストラクターを頻繁に呼び出すべきではありません。
匿名関数は Function() コンストラクターと使用方法が似ていますが、違いは、匿名関数は使用時に 1 回だけ解析されるのに対し、文字列として Function() コンストラクターに渡される JavaScript コードはコンストラクターが解析されるたびに解析されることです。呼び出されると、一度解析されてコンパイルされます。
もう 1 つ注目すべき点は、変数のスコープ、Function() コンストラクター変数のスコープがグローバルであることです。
例:
Js コード
function constructionFunction()
{var y="local";
var fun = new Function("alert(y);");//ローカルスコープをキャプチャします。楽しい();
構築関数();