function Obj() {
this.listener = {
click: [],
edit: []
};//存放回调函数
this.height = 10;
this.width = 10;
this.addListener = function(type,func) {
if(this.listener[type] != undefined){
this.listener[type].push(func);
}
};//监听事件
this.doListener = function(type,event) {
for(var key in this.listener[type]){
//回调函数返回false 不执行后面的回调函数
if(this.listener[type][key](event) ==false){
break;
}
}
};//执行回调函数
this.edit = function(key, value) {
var event; //事件对象
if (this[key] != undefined) {
this[key] = value;
event = {state: true,msg: "修改成功",data: this};
} else {
event = {state: false,msg: "修改失败",data: this};
};
this.doListener("edit",event);
};
};
var obj = new Obj();
obj.addListener("edit", function(event) {
console.log(event);
});
obj.edit("height",10);
obj.edit("heighttttttt",10);