做了个有趣的实验,网上大多都是用 function (类似 person.getname()、person.setname())的方式。当然,这是一个通用的方式。
但是在非 IE 的浏览器下,你可以尝试运行以下代码:
view sourceprint?function Person()
{
var _name
立即学习“Java免费学习笔记(深入)”;
,_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实现面向对象中的属性和事件,也是一件很优雅的事情。不过关于多播事件,不知园友有没有什么好主意?
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号