0

用語についてはわかりません。

いくつかのデータを含む JavaScript「オブジェクト」があります。

var parent = { foo: 42, bar: 2.71, baz: 3.14 };

親のエントリのローカル オーバーライドをサポートしながら、親オブジェクトへのアクセスを提供する別の JavaScript オブジェクトを作成する必要があります。

var child = extend(parent, { foo: 1, quo: 2 });

child.bar = 3;
parent.qux = 4;

assert(parent.foo === 42);
assert(child.foo === 1);

assert(parent.bar === 2.71);
assert(child.bar === 3);

assert(parent.baz === 3.14);
assert(child.baz === 3.14);

assert(parent.quo === undefined);
assert(child.quo === 2);

assert(parent.qux === 4);
assert(child.qux === 4);

// NB: I don't care about iteration on these objects.

十分にクロスブラウザーでありながら、できるだけオーバーヘッドを低くするソリューションが必要です。親の値を子にコピーすると、オーバーヘッドが大きくなります。

つまり、Lua メタテーブル チェーンに似たものを探していますが、JavaScript で作成されています。

私は[[Prototype]]チェーンについて読んでいました。進むべき道のように見えますが、ここでそれらを使用する軽量な方法はまだわかりません. (__proto__私が理解しているように、クロスブラウザでは十分ではありません。)

手がかりはありますか?

4

1 に答える 1