0

我是 javascript 和 oops 的新手。我有一个javascript函数

function foo(args){

   ...
}


//mehtod1
var type1=foo(a);

//mehtod2
var type2= new foo(a);

现在我怀疑哪个会给我们带来更多的性能 mehtod1 或 method2

new 关键字的意义是什么,与 mehtod1 相比有什么优势?

(对不起,如果问题已经存在并且我的英语很差)

4

2 回答 2

5

第一次调用执行一个操作:函数评估。第二个执行两个:创建一个新对象,然后进行函数评估。不要使用 new 来评估函数。

这是一个例子:

var x = function () { return true; };

var y = x(); // Type of y is boolean
var y = new x; // Type of y is object
var y = new x(); // Type of y is object
var y = x; // Type of y is a function
var y = x.call(this); // Type of y is a boolean
于 2012-09-27T05:37:17.663 回答
1

它们是不同的。

type1将是 function 的返回值foo

type2将是一个构造函数为 function 的对象foo

new运算符创建用户定义对象类型或具有构造函数的内置对象类型之一的实例。

参考。

于 2012-09-27T05:38:09.010 回答