請幫助我沒有得到什麼是我的代碼中的錯誤。這是關於js中的觀察者模式。獲取錯誤「Uncaught TypeError:無法讀取未定義的屬性」推送「。我認爲這個錯誤是因爲當我用新的關鍵字使用它時,沒有在對象上創建「觀察者」鍵。javascript觀察者模式幫助我的代碼
的js小提琴: https://jsfiddle.net/2808w5x0/
function Subject(){
this.observers = [];
return {
subscribeObserver:function(observer){
observers.push(observer);
},
getObservers:function(){return this.observers;},
unSubscribeObserver:function(observer){
var index = this.observers.indexof(observer);
if(index > -1){
this.observers.splice(index,1);
}
},
notifyObserver:function(observer){
var index = this.observers.indexof(observer);
if(index > -1){
this.observer[index].notify(index);
}
},
notifyAllObserver:function(){
this.observers.foreach(function(val,idx){
val.notify(idx);
});
}
};
}
function Observer(){
return{
notify:function(idx){
console.log("Observer " + idx + " notified.");
}
}
}
var subject = new Subject();
console.log("subject ",subject.getObservers());
var ob1 = new Observer();
var ob2 = new Observer();
var ob3 = new Observer();
var ob4 = new Observer();
subject.subscribeObserver(ob1);
subject.subscribeObserver(ob2);
subject.subscribeObserver(ob3);
subject.subscribeObserver(ob4);
subject.notifyAllObserver();
請再提一下有什麼不對。你將不得不指定你需要幫助的問題陳述。 – Rajesh
我的歉意。編輯帖子。 – niraj17
應該'observers.push(觀察員);'不是'this.observers.push(觀察員);' – Rajesh