ここで何が起こっているのか説明できる人はいますか?拡張子がJSのオブジェクトを拡張する
function extend(obj, extension){
for (var key in extension){
obj[key] = extension[key];
}
}
コンテキスト:たとえば、Observerパターンhttps://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript
で使用:
function Subject(){
this.observers = new ObserverList();
}
Subject.prototype.addObserver = function(observer){
this.observers.add(observer);
};
Subject.prototype.removeObserver = function(observer){
this.observers.removeAt(this.observers.indexOf(observer, 0));
};
Subject.prototype.notify = function(context){
var observerCount = this.observers.count();
for(var i=0; i < observerCount; i++){
this.observers.get(i).update(context);
}
};
で
// Extend the controlling checkbox with the Subject class
extend(controlCheckbox, new Subject());
で何が起こっているのか、私は思う:forループザ・が行きますを介して私が以前に追加した10のプロパティを追加し、それをObserverオブジェクトに追加します。私は理解していない何
:はどのようにそれを来るだけで、これらの私は(addObserverは、removeObserverは、通知すなわちオブザーバー、)の前に追加されたプロパティではなく拡張オブジェクトのすべてのプロパティを追加しますか?私は拡張オブジェクトを印刷するとき、私は例えば
を見ることができるconstructor
こと - または__proto__
プロパティがあるませが追加されました。