2

オプション A:

myobj = {
    a: 'a',
    a1: 'a1',
    a2: 'a2',
    a2a: 'a2a',
    a2b: 'a2b',
    a3: 'a3',
    a3a: 'a3a',
    a3a1: 'a3a1',
    a3a2: 'a3a2',
    b: 'b',
    // ...
};

オプション B:

myobj = {
    a: {
        a1: 'a1',
        a2: {
            a2a: 'a2a',
            a2b: 'a2b'
        },
        a3: {
            a3a: {
                a3a1: 'a3a1',
                a3a2: 'a3a2'
            }
        }
    },
    b: { ... }
};

私はこれを設計上の決定として検討しています。より単純なケースを次に示します。

オプション A:

eventHandler: {
    triggerObj: triggerObj,
    triggerAction: triggerObj.someMethod,
    responseObj: responseObj,
    responseAction: responseObj.someMethod
}

オプション B:

eventHandler: {
    trigger: {
        obj: triggerObj,
        action: triggerObj.someMethod
    },
    response: {
        obj: responseObj,
        action: responseObj.someMethod
    }
}

私はこれが眼科医のようなものだと確信して います。 ただし、パフォーマンスに確固たる理由があるかどうか、または単にセマンティック/読みやすさ/その他の理由があるかどうかを確認したいと思います。

質問のタイトルに関連して、顕著なパフォーマンスの問題を発生させるには、オブジェクトブレースをいくつ追加する必要がありますか? 1,000 の数でも、1,000,000 の数でも大した問題ではないと思います :-\

4

1 に答える 1

3

私は先に進み、それをしました。空のオブジェクトを作成し、その中に 100 万個の空のオブジェクトを入れました。次に、プロファイラーを開きました。

Object count: 1,011,296
Shallow size: 12,202,312
Retained size: 14,434,484

したがって、空の JavaScript オブジェクトはそれぞれ約 12 バイトです。空の配列オブジェクトでも試しました:

Array count: 1,000,725
Shallow size: 32,023,200
Retained size: 32,034,880

空の配列オブジェクトは、約 32 バイトを使用します。

于 2014-06-18T16:42:59.537 に答える