17

重複の可能性:
オブジェクトの作成-新しいオブジェクトまたはオブジェクトリテラル表記?
リテラル表記VS。JavaScriptでオブジェクトを作成するコンストラクター

私は最初のJavascriptチュートリアルを行っています。

JSオブジェクトを作成する2つの方法を見つけました。

var person = new Object();
person.name = "Tom";
person.age = "17";

var person = {};
person.name = "Tom";
person.name = "17"

これら2つのオブジェクト作成方法に違いはありますか?2つ目はシンプルに見えるので、いつでもどのような条件下でも使用できますか?

4

1 に答える 1

28

2番目の構文は読みやすく、どのような条件下でも機能するだけでなく、最初の構文はすべての条件下で機能するとは限りません。

function Object() {
    // Oh crap, we have redefined Object!
    return [];    // return an array because we are EVIL
}

var person = new Object();   // not what we think it is

しかし{}、構文構造であるため、そのような邪悪なトリックの影響を受けません。

さらに、作成できるオブジェクトタイプは結局1つしかないため、オブジェクトリテラル表記は解析時に部分的に最適化できます。その結果、パフォーマンスがわずかに向上する可能性があります。

于 2013-01-09T00:14:39.967 に答える