JS中的函数构造函数初始化?

时间:2013-03-18 14:36:42

标签: javascript

我应该如何初始化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

2 个答案:

答案 0 :(得分:3)

他们是完全相同的。来自the spec

  

Function作为函数而不是构造函数调用时,它会创建并初始化一个新的Function对象。因此,函数调用Function(…)等同于具有相同参数的对象创建表达式new Function(…)

答案 1 :(得分:1)

  

两者都是一样的。

但是如果你使用new,那么对象中的每个属性都会有一个新实例。