我对JavaScript的效率有疑问。我想创建一个观察特定成员的“观察者”,并在更改后执行一项功能。我见过两种方法:
1)一个设定的间隔,它连续地将旧值与当前值进行比较,并在发生变化时触发回调
2)Object.watch
我已经读过Object.watch会产生一些开销,但我很好奇上面哪种方法效率最高?如果还有其他方法,请随时告诉我!
答案 0 :(得分:2)
您还可以将成员包装在更新函数中,该函数在设置新值后触发事件,并在代码中的其他位置侦听事件。这将是非常有效的。
答案 1 :(得分:0)
(旁注:您应使用Object.observe()
,因为Object.watch()
是特定于FF的。)
如果这是关于特定属性的,那么在许多意义上使用虚拟属性机制并提供自己的setter会更好。查看Object.defineProperty