time 
设为首页】【收藏本站
当前位置: 主页 > JavaScript > 其它JS框架 > Watch.js为javascript对象实现观察者模式

Watch.js为javascript对象实现观察者模式

时间:2012-11-15 22:48 点击:1691次 字体:[ ]




 最近发现一个比较有意思的js库可以为javascript的对象实现观察者模式,以往我们使用javascript实现的观察者模式都是通过使用回调函数配合dom上的event事件来操作的,而“Watch.js”可以为javascript的对象实现观察者模式,监听对象的变化。

 

 watch.js目前主要可以做如下这些事情:

 1,监听对象上一个或多个属性的改变,当改变后触发自定义事件。

 2,批量观察一个对象上所有的属性,当有任何一个改变时,触发自定义事件。

 3,可以取消订阅观察

 4,你可以在你需要的时候,不用改变对象上的属性值,就可手动触发观察器。

 5,可以与jquery兼容 

 

下面看一个watch.js的基本使用,更多的代码可以参考本文最后的项目地址。

 

  1. var ex1 = { 
  2.     attr1: "initial value of attr1"
  3.     attr2: "initial value of attr2" 
  4. }; 
  5.  
  6. //监听ex1的attr1,当attr1值发送改变时候触发函数 
  7. watch(ex1, "attr1"function(){ 
  8.     alert("attr1 changed!"); 
  9. }); 
  10. //改变attr1值将弹出 attr1 changed! 
  11. ex1.attr1 = "other value"

 

该类库内部由于目前是使用__defineSetter__与__defineGetter__实现,所以目前只能工作在如下浏览器中。

* IE 9+, FF 4+, SF 5+, WebKit, CH 7+, OP 12+, BESEN, Rhino 1.7+

不过开发者声称在一下次的更新中将会兼容所有浏览器(我还没想明白在IE8以前如何实现,有高人可以指点一下)。有兴趣的朋友也可以在github关注这个项目。

 

 项目地址:https://github.com/melanke/Watch.JS 

 



本文地址 : http://www.fengfly.com/plus/view-210268-1.html
标签: 对象 JavaScript 观察者模式 Watch.js
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: