2

関数を初期化するにはどうすればよいですかFunction constructor:

(両方とも機能しているようです。)

このような :

var t= new Function ("a","alert(a)");
t(3)//3
alert(Object.prototype.toString.apply(t)); //[object Function]

また

var t= Function ("a","alert(a)"); //without new 
t(3) //3
alert(Object.prototype.toString.apply(t));//[object Function]

違いはありますか?

jsbin

4

2 に答える 2

3

それらは同一です。スペックから:

Functionコンストラクターとしてではなく関数として呼び出されると、新しいFunctionオブジェクトを作成して初期化します。したがって、関数呼び出しは、同じ引数を持つFunction(…)新しいオブジェクト作成式と同等です。Function(…)

于 2013-03-18T14:37:53.987 に答える
1

どちらも同じです。

ただし、newを使用すると、オブジェクト内のすべてのプロパティに新しいインスタンスが作成されます。

于 2013-03-18T14:38:44.473 に答える