1
我讀了一章關於observers
here並沒有這對於Subject
實體實現接口下面的代碼:爲什麼混入選擇了原型繼承
function Subject(){...}
Subject.prototype.addObserver = function(observer){...};
Subject.prototype.removeObserver = function(observer){...};
Subject.prototype.notify = function(context){...};
然後是擴展功能產生的混入:
function extend(extension, obj){
for (var key in extension){
obj[key] = extension[key];
}
}
和下面的代碼創建具體的研究對象是一個複選框:
var controlCheckbox = document.getElementById("mainCheckbox");
// Extend the controlling checkbox with the Subject class
extend(new Subject(), controlCheckbox);
這裏我的問題是爲什麼controlCheckbox
混合,而不是繼承Subject
類?
因爲他們只想儀器那個特定的複選框? – 2014-08-27 15:12:08
您無法真正改變DOM元素的原型鏈。 – 2014-08-27 15:15:13
這不是'controlCheckbox'被混入'new Subject()' - 這是相反的。 'controlCheckbox'(蹩腳的名字,順便說一句)正在獲得與「Subject」相關的行爲。 – cHao 2014-08-27 15:25:57