私は2つのクラスを定義するとしましょう。次に、各クラスのオブジェクトを作成します。私はそのクラスに基づいてオブジェクトを取得することができるように、それらのクラスによってキーマップされたマップにオブジェクトを保存します。Javascriptではオブジェクトをキーとして使用するのが効率的ではありませんか?
同じ結果で、次の
// Alternative 1
class Apple {
}
class Banana {
}
let fruitInBag = {};
fruitInBag[Apple] = new Apple();
fruitInBag[Banana] = new Banana();
代わりに、私も書くことができる(私はしかし、問題は、関数に置き換えクラスとレガシーJavaScriptが同じままであり、ES6の構文を使用しています)
// Alternative 2
class Apple {
}
class Banana {
}
const FRUIT_TYPE_APPLE = 1;
const FRUIT_TYPE_BANANA = 2;
let fruitInBag = {};
fruitInBag[FRUIT_TYPE_APPLE] = new Apple();
fruitInBag[FRUIT_TYPE_BANANA] = new Banana();
私はクラス定義とは別に定数を定義して維持しなければならないので、2番目の選択肢は扱いにくいです。したがって、私は最初のものを好むでしょう。しかし、最初のアプローチは非効率的ですか? Object
は、効率的に最初の選択肢を実装するのに十分なスマートですか?
「マップ」についてはどうですか?オブジェクトはそのキーを文字列表現に「正規化」します。 –
キーはクラスではなくクラス名の文字列です。 – jcubic
問題は何ですか? _performance_に関連する質問ですか? – Rayon