不確定有關術語。JavaScript中的透明分層數據框
我有一個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 metatable鏈的東西,但是在JavaScript中。
我正在閱讀關於[[Prototype]]
鏈。它看起來像要走的路,但我還沒有弄清楚在這裏使用它們的輕量級方法。 (__proto__
,據我所知,瀏覽器不夠用)
聽起來像是你正在尋找'Object.create' :https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create。 –
很酷,謝謝!小心添加它作爲被接受的答案? :) –