0

私は JavaScript の精神を学ぼうとしている Java 開発者です。

JavaScript で静的オブジェクトを作成するためのこれら 2 つのアプローチは、非構文的な方法で異なりますか? JavaScript プログラマーの観点からは、どのアプローチがより受け入れられますか?

アプローチ A:

var obj = {};
obj.field1 = /* some expression */;
obj.field2 = /* some expression */;

アプローチ B:

var obj = {
    field1: /* some expression */,
    field2: /* some expression */
};
4

1 に答える 1

1

両方のオブジェクトが同様の方法で作成されることになり、パフォーマンスの違い (あるとしても) は、違いに気付かないほど小さいと思います。

ただし、これは普遍的なものではありません。配列を作成するときは、B と同様のアプローチを使用する方が効率的です。これは、(少なくとも V8 では) 配列のサイズを知っているため、設定されたサイズで配列を割り当てる方が効率的であるためです。

// Here V8 can see that you want a 4-element array containing numbers:
var a = [1, 2, 3, 4];

// Don't do this:
a = []; // Here V8 knows nothing about the array
for(var i = 1; i <= 4; i++) {
    a.push(i);
}

出典:スマッシングマガジン

Chrome プロファイリング ツールを試して、両方のアプローチの効率に違いがあるかどうかを確認することをお勧めします。

さらに、JavaScript を初めて使用する場合は、AirBnB によって作成されたすばらしいJavaScript スタイル ガイドを確認することをお勧めします。効率的でクリーンな JavaScript を作成するための優れたヒントがたくさんあります。

于 2013-07-25T14:32:58.683 に答える