observer.js

0.4.0 • Public • Published

Build codecov.io Version License Downloads

##observer.js

用于观察任意对象的任意变化的类库。 支持 ES7 Object.observe, IE 6 7 8

对象字面量

var obj = { a: 1 };
observer.on(obj, function (name, value , old) {
    console.log(name + "__" + value + "__" + old);
});
obj.a = 2; //a__2__1 

数组

var arr = [1, 2, 3];
observer.on(arr, function(name, value, old) {
    console.log(name + "__" + value + "__" + old);
});
arr.push(4); //Array-push__[1,2,3,4]__[1,2,3]
arr[2] = 5; //2__5__3   length__4__3

复杂对象

var complexObj = {
    a: 1,
    b: 2,
    c: [{
        d: [4]
    }]
};
observer.on(complexObj, 'c[0].d', function(name, value, old) {
    console.log(name + "__" + value + "__" + old); 
});
complexObj.c[0].d = 100; //c[0].d__100__4

普通对象

var User = function(name, age) {
    this.name = name;
    this.age = age;
    //只监听name
    observer.on(this, ["name"], function(name, value, oldValue) {
        console.log(name + "__" + value + "__" + oldValue);
    });
}
var user = new User("lisi", 25);
user.name = "wangwu"; //name__wangwu__lisi
user.age = 20; //nothing,no listener

This content is released under the (http://opensource.org/licenses/MIT) MIT License.

Readme

Keywords

Package Sidebar

Install

npm i observer.js

Weekly Downloads

3

Version

0.4.0

License

MIT

Last publish

Collaborators

  • tao.zeng