如何在Javascript OOP中动态地将属性添加到一组已构建的对象中

时间:2015-06-22 18:40:12

标签: javascript oop inheritance prototype

如果我使用构造函数构建了很多对象,后来我意识到我需要为它们添加新属性,我想知道我应该如何设计构造函数,让它的实例对象能够自动继承新添加的属性覆盖该值而不影响其他对象。

我原来的用户要求如下:

Janet正致力于保存游戏设置的功能,并希望将这些设置存储在云端,以便通过单独的Web界面进行管理。游戏设置数据只包含键/值对(KVP),其中键可以是任意字符串(在字符集[a-z0-9。]内),值只能是简单的原始类型(字符串,数字,布尔值,和null)。此外,她希望能够将设置组织成逻辑组(例如“难度”)并创建每个组的变体而不必重复数据(例如“简单”, “硬”)。例如,“难度”组中的“maxEnemyCount”键将自动继承子组“easy”和“hard”,并且可以选择在每个子组中覆盖。

这是来自其他人,如果对你有任何不明确的要求,只需用你自己的判断来解决它。

我想我必须误解这个要求,所以请为此发布你的解决方案。

由于

1 个答案:

答案 0 :(得分:0)

这是通过JavaScript中的prototype完成的。

Foo = function(){};
var foo1 = new Foo();
var foo2 = new Foo();
foo2.newAttribute = "world";
Foo.prototype.newAttribute = "hello";
console.log(foo1.newAttribute); // "hello"
console.log(foo2.newAttribute); // "world"