写在前面各大MVVM框架的双向绑定太难以观察,很难直观地从业务代码里知道发生了什么,我不是双向绑定的反对者,只是认为双向绑定不应该糅合进底层框架,而应该出现在业务代码中,或者是业务和框架之间的代码上,由开发者实现,由开发者决定观察什么,决定响应什么。以及Object.observe的支持度不够好(http://caniuse.com/#search=observe),再者Object.observe的功能太弱(如对象内数组的变化无法监听)。所以就有了observejs。observe.js意义* 监听任意对象的任意数据变化* 作为业务和框架之间的中间件存在* 作为mv*框架中的监听模块(当然我是相当反对)3分钟精通observe.js对象字面量var obj = { a: 1 };
//watch obj
observe(obj, function (name, value) {
console.log(name + "__" + value);//a__2
});
obj.a = 2;数组var arr = [1, 2, 3];
//watch obj
observe(arr, function (name, value, old) {
console.log(name + "__" + value+"__"+old);
});
arr.push(4);//ar
...
继续阅读
(28)