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);