我应该如何初始化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]
有什么不同吗?
答案 0 :(得分:3)
他们是完全相同的。来自the spec:
当
Function
作为函数而不是构造函数调用时,它会创建并初始化一个新的Function对象。因此,函数调用Function(…)
等同于具有相同参数的对象创建表达式newFunction(…)
。
答案 1 :(得分:1)
两者都是一样的。
但是如果你使用new,那么对象中的每个属性都会有一个新实例。