观看页面任何对象或属性的变化:Watch.js

jopen 9年前

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

用麻雀虽小五脏俱全来描述Watch.js比较合适。“观察者”模式是我们在开发的时候经常需要用到的。使用Watch.js那么我们就可以实现在“每当对象属性改变的时候,执行你的函数”。虽然有很多其他的库可以实现相同的功能,但是Watch.js却可以不改变你平时书写代码的方式,并且实现属性改变的监听功能。

浏览兼容情况 :P

Works with: IE 9+, FF 4+, SF 5+, WebKit, CH 7+, OP 12+, BESEN, Node.JS , Rhino 1.7+


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

 1,监听对象上一个或多个属性的改变,当改变后触发自定义事件。
 2,批量观察一个对象上所有的属性,当有任何一个改变时,触发自定义事件。
 3,可以取消订阅观察
 4,你可以在你需要的时候,不用改变对象上的属性值,就可手动触发观察器。
 5,可以与jquery兼容

使用:观察一个对象属性的变化

//defining our object however we like  var ex1 = {      attr1: "initial value of attr1",      attr2: "initial value of attr2"  };    //defining a 'watcher' for an attribute  watch(ex1, "attr1", function(){      alert("attr1 changed!");  });    //when changing the attribute its watcher will be invoked  ex1.attr1 = "other value";

项目主页:http://www.open-open.com/lib/view/home/1415688705805