1

我想localStorage通过每次获取/存储设置时执行一些代码来扩展。我可以为 的所有现有属性定义一个 getter/setter localStorage,但问题在于新设置。

例如,localStorage['somenewsetting'] = 123创建一个新设置。我想为此属性自动定义一个 getter/setter,以便我的添加代码也可以针对新设置执行。

基本上我需要Object.watch,但对于所有属性。我发现的是__noSuchMethod__,但它在 Chrome 上不可用。这种方法有可用的垫片吗?还是有另一种观察对象所有属性的方法?

同样,我需要在 Chrome 上完成这项工作。

4

2 回答 2

2

是的,我也想要那个。很多很多其他人也是如此。不会发生。曾经。Chrome (V8) 在其 JS API 方面遵循 webkit。 __noSuchMethod__是 Mozilla 创建的非标准事件,已被 ECMAScript (JavaScript) 正式拒绝。

换句话说,它永远不会存在:'(

(或者如果确实如此,那将是经过多次争论并且不会很快发生)

于 2011-06-21T17:47:05.873 回答
2

不,至少,不适用于 Chrome。 __noSuchMethod__无论如何,仅适用于功能。

Proxy下一版 ECMAScript (Harmony) 的支持正在讨论中,甚至已经在 SpiderMonkey 中实现。在那之前,恐怕你运气不好。

— 有人要求__noSuchMethod__在 V8中实施,但被拒绝了。实现 Proxy 的请求不再成功:633 被合并为 duplicate,Chromium 团队不太关心实现 Proxy 支持

于 2011-06-21T17:50:28.133 回答