0

一些返回相同对象的函数,无论是否作为构造函数调用。

在性能方面,我应该使用

new RegExp(rg, flags);

new Array(1000);

new Object(whatever);

...

或者

RegExp(rg, flags);

Array(1000);

Object(whatever);

...

?

编辑:我错了,如果我使用Object()new Object()

4

2 回答 2

2

这取决于类型。因为Array它是等价的:

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

对于Object

Object作为函数而不是构造函数调用时,它执行类型转换。当Object作为new表达式的一部分被调用时,它是一个可以创建对象的构造函数。

您可以在spec中查找其他类型。

于 2013-08-27T01:08:34.887 回答
0

在性能方面

在性能方面,尽可能使用文字

// Array
var arr = [0, 2, 4];

// Object
var obj = {foo: 'bar'};

// RegExp
var re = /foo/ig;

perf 用于Array, perf 用于Object, perf 用于RegExp

于 2013-08-27T01:20:23.427 回答