私はJavascriptで非常に多くのオブジェクトを作成しています。これは後で、例えば配列を通して取得するために参照できる必要があります。今は、オブジェクト参照を配列に保存する方法が不思議です。Javascriptリファレンスオブジェクトを識別子で参照するか、直接参照しますか?
オブジェクトは、オブジェクトIDまたはオブジェクト自体のいずれかで機能する外部ライブラリと相互作用します。私はJavascriptがポインタとオブジェクトコピーではないオブジェクト変数を扱うことを知っているので、オブジェクトを直接参照するのは安全ですか?
最初は「オブジェクトのIDを保存すればメモリ使用量を低く抑えることができます」と思っていましたが、これは本当ですか?オブジェクト変数*と整数変数の消費量はどれくらいですか?オブジェクトを直接保存すると移動するための方法である場合
*オブジェクトへのポインタではなく、オブジェクトデータ
はまた、それは、配列に新しいオブジェクトを追加するarray.push()
を使用しても大丈夫でしょうか? array.push()
はコピーを作成していますか、それとも変数のように機能していますか?
"[...]オブジェクトを直接参照するのは安全ですか?"はい。 "整数変数に対してオブジェクト変数*が消費するメモリ量はどれくらいですか?" - これは指定されていませんが、ここでのメモリ使用量は完全に無視できます。 JSコンパイラの最適化では、コンパクトな31ビット符号付き整数配列が非常に効率的に格納されます(32ビット/整数)。オブジェクト(参照)は64ビットを占めるでしょうか? –