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
,但我不能確定什麼,我需要做的,在一個通用的方式擴展現有的按鍵,而從Editor.Advanced.prototype
移動config
的構造和使用push
功能。
你想深入的擴展,jQuery有一個(平庸)算法 – Raynos 2012-03-14 17:50:32
堅持..小心檢查我的理解了一下。你問是否有辦法讓一個Class對象擴展一個實例對象?就像你如何設置Editor.Advanced.prototype = {...}? – 2012-03-14 21:29:06