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;

Arrayのperf 、Objectの perf 、RegExpの perf 。

于 2013-08-27T01:20:23.427 に答える