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

Function constructor initialization in JS?

本文关键字:构造函数 初始化 函数 JS      更新时间:2023-09-26

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

它们是相同的。来自规范:

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

都是一样的

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