观看页面任何对象或属性的变化:Watch.js
jopen
10年前
一个比较有意思的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";