在 JavaScript 实现多播事件、属性设置/读取器
2011-05-02 20:57
393 查看
做了个有趣的实验,网上大多都是用 function (类似 person.getName()、person.setName())的方式。当然,这是一个通用的方式。
但是在非 IE 的浏览器下,你可以尝试运行以下代码:
所以,用javascript实现面向对象中的属性和事件,也是一件很优雅的事情。不过关于多播事件,不知园友有没有什么好主意?
但是在非 IE 的浏览器下,你可以尝试运行以下代码:
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实现面向对象中的属性和事件,也是一件很优雅的事情。不过关于多播事件,不知园友有没有什么好主意?
相关文章推荐
- javascript 三种方法实现获得和设置以及移除元素属性
- javascript 三种方法实现获得和设置以及移除元素属性
- JavaScript权威指南_162_第17章_事件处理_17.2-注册事件处理程序-设置JavaScript对象属性为事件处理程序
- javascript 三种方法实现获得和设置以及移除元素属性
- 在javascript中使用(读取、设置)Asp.net服务器的属性、方法和事件
- [转] JavaScript 动态添加表格/动态添加事件/态设置属性
- bootstrap datepicker 属性设置 以及方法和事件
- JavaScript实现响应事件实例
- 给EditText的drawableRight属性的图片设置点击事件
- js 实现图片预加载 (js操作 Image对象属性complete ,事件onload 异步加载图片)
- JavaScript实现跨浏览器的添加及删除事件绑定函数实例
- js玩具——UI组件:PropertyChangeEventListener 属性改变事件监听器及默认实现
- JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
- 关联事件,向窗体中添加控件,设置控件属性等系列操作
- android实现界面左右滑动(GridView动态设置item,支持每个item按某个属性排序来显示在不同的界面)
- JavaScript实现网页打印,可设置页眉、页脚、页边距
- SYD8801代码解析【BLE_SendData函数gap_att_report结构体设置】【蓝牙广播的实现】【协议栈回调事件】【自动睡眠】【使用内部晶振】【蓝牙状态机的说明】【断线时重新配置IO口】
- CSS expression属性实现javascript与CSS完美结合
- extjs事件的属性设置简要解释
- js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)