深入观察任何类型的JS数据结构

时间:2017-03-29 11:48:10

标签: javascript observable

我只是努力寻找一种通用的解决方案来观察或观察JavaScript中的数据结构。有多种方法可以做到这一点:

  1. 实现您自己的可观察数据结构对象,例如:ObservableList
  2. 还可以使用属性轮询来检测更改。甚至还有一个基于民意调查的框架。见这里:Watch.JS
  3. 使用以下代码覆盖属性的set方法:Object.defineProperty(obj, 'text', { set: function(t) { this.text = t; console.log('changed') } });Mozilla API - overwrite setter。因此,如果某人设置了对象的属性,则可以发出事件或调用函数,如果有人obj.text = 'Hallo'
  4. Object.observe(obj, callback),但这在大多数浏览器中都不起作用。
  5. obj.watch('text', callback),但这只适用于Gecko浏览器。
  6. 我个人更喜欢第三种方法;覆盖属性的setter方法。但这种方式有一个小问题。我无法观看数组修改(obj.arr[2]='What?')。也许有其他事情做得不好我还没想到。

    我在这里看到的另一个问题是,实际上没有框架可以为我抽象一切。并且没有框架可以为我深入监视数据结构,例如:带有对象的数组的对象。

    或者有这样的框架,但我没有找到它。

0 个答案:

没有答案