누군가 여기서 나에게 설명 할 수 있습니까?JS에서 확장 기능이있는 개체 확장
function extend(obj, extension){
for (var key in extension){
obj[key] = extension[key];
}
}
상황에 맞는 예를 들어 옵저버 패턴 https://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript
에서 사용 :
// Extend the controlling checkbox with the Subject class
extend(controlCheckbox, new Subject());
내가 무슨 생각
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);
}
};
으로이 벌어지고 : 루프 간다통해 10 속성을 추가 한 다음 Observer 개체에 추가합니다. 이해가 안 무엇
:이 어떻게 와서는 만 나는 (addObserver이 removeObserver는 통보 즉 관찰자) 앞에 추가 속성이 아닌 확장 개체의 모든 속성을 추가?
나는 constructor
것을 볼 수 있습니다 내가 확장 개체를 인쇄 할 때 예를 들어 - 또는 __proto__
속성 입니다 추가하지.