我想建立一个观察者/听众系统:
var listeners = [];
function MyObj(){
this.myMethod = function(){
// react to event
}
}
var myObj = new MyObj();
function addListener(fn, obj){
alliancesNotify[alliancesNotify.length] = {fn: fn, obj: obj}
}
addListener(myObj, myObj.myMethod); // Best way of doing it?
function notify(objArr){
for (var i in objArr){
objArr[i].obj.fn(); // will this work?
}
}
notify(listeners);
我希望您对这两条注释行有想法(如果它实际上会像预期的那样工作)以及是否可能有更直接的方式通过调用对象的方法来通知对象。(例如,我注意到一些实现将函数名作为字符串传递,而不是对函数的引用,而不是这种方式。)
谢谢