私はポインタのような振る舞いでオブジェクトをコーディングしようとしています。 他の言語で使用されているような実際のポインタではありませんが、データの一部を参照するものが必要なので、私はそのことを常に伝えることができ、常にそれを参照しています。 データ。Javascriptとポインタのようなオブジェクト
次のコードを考えてみましょう:私は今、何をやっている
var Pointer = function (data) {
var instance = {};
instance.deref = function() { return data; };
return instance;
};
を、ポインタインスタンスのスコープ内のデータを記憶しています。
私の質問は: は、私は他に1つの場所からのポインタの束を移動しなければならないとき速度の点で重大な欠点を持っているポインタの範囲にデータを格納していますか? データがこれらのポインタによって表されるデータ構造を想像してみましょう。すべてがその範囲内にユニークなデータを持っています。ポインタを動かして構造を操作する必要があります。
また、OPは、そのオブジェクトを「const」と宣言したい場合があります。これは「常に同じデータを参照しています」ということを保証します。 –
私は、データ型をポインタのプライベートプロパティのようにするためにクロージャを使用し、データにアクセスできる方法を制御しました。私の例は単純化されています。私は 'Object.defineProperty()'、 'preventExtensions()'、 'seal()'、 'freeze()'などのことを認識しています。 私はポインタ算術演算を行う必要はありませんし、アドレスを使用するので、私はこれの欠如を気にしません。 – MPS
私は私の事例をさらに単純化し、あなたがしたことをすることができたと思います。それから私はおそらくそれがポインタの範囲にあるデータ自体ではなく、参照でもあることに気づいたでしょう。あなたの例はそれをはっきりと示し、私の質問に答えました。しかし、私はいくつかのデータ構造を作りたいと思っています。私のプロジェクトでは、このようなものにポインタ(または他のもの)のような名前を付けるのが理にかなっています。これは、オブジェクトの唯一の目的と機能が、他の場所のデータを参照することであることを明確にしています。誰が何を知っているかのオブジェクトではなく、 – MPS