有关javascript多播事件,网上多是采用function (类似 person.getName()、person.setName())的方式。一个通用的方式。
在非 IE 浏览器下,可以使用以下代码:
 
view sourceprint?function Person() 
{ 
var _name 
,_age,_sex;
var _nameChanged = new Array();
this.__defineGetter__(NameChanged,function() 
{ 
return _nameChanged; 
}); 
this.__defineSetter__(NameChanged,function(value) 
{ 
_nameChanged.push(value); 
});
this.__defineGetter__(Name,function() 
{ 
return _name; 
}); 
this.__defineSetter__(Name,function(value) 
{ 
if(this.NameChanged != null) 
{ 
for(var f in _nameChanged) 
{ 
_nameChanged[f](value); 
} 
} 
_name = value; 
});
this.__defineGetter__(Age,function() 
{ 
return _age; 
}); 
this.__defineSetter__(Age,function(value) 
{ 
_age = value; 
}); 
} 
Person.prototype = 
{ 
get Sex() 
{ 
return _sex; 
}, 
set Sex(value) 
{ 
_sex = value; 
} 
}; 
var person = new Person();
person.NameChanged = function() 
{ 
alert(Event 1); 
} 
person.NameChanged = function() 
{ 
alert(Event 2); 
}
person.Name = Treenew; 
person.Age = 22; 
person.Sex = Man
alert(The + person.Name + Age is + person.Age + . The Sex Value is + person.Sex); 
alert(person._sex); //undefined
用javascript实现面向对象中的属性和事件。