我想通过在每次获取/存储设置时执行一些代码来扩展localStorage
。我可以为localStorage
的所有现有属性定义一个getter / setter,但问题在于新设置。
例如,localStorage['somenewsetting'] = 123
会创建一个新设置。我想自动为这个属性定义一个getter / setter,这样我的加法代码也会为新设置执行。
基本上我需要Object.watch
,但是对于所有属性。我发现的是__noSuchMethod__
,但Chrome无法使用。这种方法有没有可用垫片?或者是否有另一种观察对象的所有属性的方法?
同样,我需要在Chrome上完成这项工作。
答案 0 :(得分:2)
__noSuchMethod__
是由Mozilla创建的非标准事件,已被ECMAScript(JavaScript)正式拒绝。
换句话说,它永远不会存在:'(
(或者如果确实如此,它将经过多次争论,并且不会很快发生)
答案 1 :(得分:2)
不,至少,不是Chrome。无论如何,__noSuchMethod__
仅适用于功能。
Proxy
支持already implemented in SpiderMonkey。在那之前,你很幸运,我很害怕。
- 有a request to implement __noSuchMethod__
in V8但是被拒绝了。实施代理的请求不再成功:633 was merged as duplicate和Chromium团队doesn't care much about implementing Proxy support。