// Base class
var Base = function() {
this._value = 'base';
};
Base.prototype = {
constructor: Base,
// By function
getValue: function() {
return this._value;
},
// By getter
get value() {
return this._value;
}
};
// Sub class extends Base
var Sub = function() {
this._value = 'sub';
};
Sub.prototype = {
constructor: Sub
};
// Pass over methods
Sub.prototype.getValue = Base.prototype.getValue;
Sub.prototype.value = Base.prototype.value;
// ---
var mySub = new Sub();
alert(mySub.getValue()); // Returns 'sub'
alert(mySub.value); // Returns 'undefined'
乍一看似乎mySub.value應返回相同的mySub.getValue(),但你可以看到它,而不是返回undefined。顯然,getter沒有找到父範圍作爲子實例(mySub),而是一個不存在的Base實例。複製的JavaScript getter/setter方法到另一個原型對象
有沒有解決這個其他任何方式比具有相同的干將分配到新的原型?
我知道這並不能回答你的問題......但爲什麼你甚至需要吸氣劑?這不是不必要的複雜性嗎? – 2011-05-18 04:00:35
@Micheal沒有。 – Kayla 2011-05-18 04:12:18
@Michael在這個例子中,顯然這是沒有必要的,我只是寫了一個清楚的概念來說明我面臨的問題。 在我的實際應用中,獲取/設置特定的屬性我需要觸發等功能,並且代碼時。 – 2011-05-18 04:20:56