var obj = {};
obj.a = 1; // fire event, property "a" added 这个问题不同于this one,其中正在讨论检测已经声明的属性何时发生更改的方法。
发布于 2017-03-02 18:15:51
如果性能很重要,并且您可以控制更改对象的代码,请创建一个控件类来为您修改对象,例如
var myObj = new ObjectController({});
myObj.set('field', {});
myObj.set('field.arr', [{hello: true}]);
myObj.set('field.arr.0.hello', false);
var obj = myObj.get('field'); // obj === {field: {arr: [{hello: false}]}}在set()方法中,与设置时间间隔和定期扫描以检查更改相比,您现在能够以相当高的性能查看每个更改发生的位置。
我在ForerunnerDB中做了类似但高度优化的事情。在数据库上执行CRUD操作时,会为特定的字段路径激发更改事件,从而允许数据绑定视图在其基础数据发生更改时进行更新。
https://stackoverflow.com/questions/12678517
复制相似问题