特定のオブジェクトを扱う一連のJavaScript関数があります。すべてのこれらのオブジェクトは、次の柔軟性を有する:data[prop][sub-prop][etc.]
、ORこのよう 条件付きデータ構造(オブジェクト)へのアクセス
data[TYPE][prop][sub-prop][etc.]
- のフィールドは次のようにアクセスすることができます。
オブジェクトは多くの場所でアクセスされ、条件(「is_mixed
」と呼ぶ)はすべての場所で関連性があります。
私は、次の選択肢を考えた:
- は、常にこのよう
data
にアクセス:(is_mixed ? data[TYPE] : data)[prop][sub-prop][etc.]
はのgetDataと呼ばれる機能を持っており、常にこのような
data
アクセス:getData()[prop][sub-prop][etc.]
を。 機能コードは次のようになります。function getData() { return is_mixed ? data[TYPE] : data; }
実行して、すべての新しい入力に以下:
if (is_mixed) { data = data[TYPE]; }
(オプション2と3は、オブジェクトデータをコピーするかもしれないと私には思われます)、パフォーマンスはここで重要です(この推測をサポートする文献は見つかりませんでした)が、オプション1はコードを大きくて醜いものにします。
もっと良い選択肢はありますか?パフォーマンス、コード品質、基本的にベストプラクティスという点でこれを達成する最良の方法は何ですか?
JavaScriptオブジェクトは次のように操作されます。 *参照*。関数にオブジェクトを渡しても、オブジェクトコピーが構築されるわけではありません。 – Pointy
あなたはそれが正しいです(解析されたJSON)。すべてのアクセスが参照であればそれは素晴らしいです、私はオプション2または3を使用することができます。Thnx。 –