var Editor = {};
Editor.Basic = function(obj) {
this.config ={
value: obj
}
};
Editor.Basic.prototype = {
getValue: function() {
return this.config.value;
}
};
Editor.Advanced = function(obj) {
Editor.Basic.call(this, obj);
};
Editor.Advanced.prototype = {
config: {
notValue: !this.config.value
}
};
var extendByPrototype = function(obj1, obj2) {
for (var key in obj2.prototype) {
if (obj2.prototype.hasOwnProperty(key) && obj1.prototype[key] === undefined)
obj1.prototype[key] = obj2.prototype[key];
}
};
extendByPrototype(Editor.Advanced, Editor.Basic);
Есть ли способ заставить Editor.Advanced.prototype
расширять существующие объекты (конечно же, рекурсивно) вместо их переопределения?(Как видно из extendByPrototype
)
Я знаю, что проверю obj1.prototype[key] !== undefined
, но я не уверен, что мне нужно сделать, чтобы расширить существующие ключи общим способом, не перемещая config
из Editor.Advanced.prototype
в конструктор и используя функцию push
.