1

設定をフェッチ/保存するたびにコードを実行してlocalStorageを拡張したいと思います。私はlocalStorageのすべての既存のプロパティのgetter/setterを定義できますが、問題は新しい設定にあります。すべてのプロパティにObject.watchがありますか?__noSuchMethod__にshimがありますか?

たとえば、localStorage['somenewsetting'] = 123は新しい設定を作成します。私は自動的にこのプロパティのgetter/setterを定義して、追加コードが新しい設定に対しても実行されるようにしたいと思います。

基本的に私はObject.watchが必要ですが、すべてのプロパティで必要です。私が見つけたのは__noSuchMethod__でしたが、Chromeでは利用できません。この方法にシムがありますか?または、別の方法で見ることができますすべてオブジェクトのプロパティですか?

もう一度この作業をChromeで行う必要があります。

+0

'setItem'を使ってすべての課題にアクセスする方法はありますか? 'localStorage' /' sessionStorage'のラッパー/ファサードクラスを書いて、 'RegExp'と偶数の文字列(引用符付きの文字列)を直列化し、普通のオブジェクト、' Date'と 'RegExp'を逆直列化しました。 'setItem'プロキシ関数の中に追加のコードを追加するという目的で同じことをすることができます。 – MarkMYoung

答えて

2

ハズレはありません、少なくとも、ないChromeの。__noSuchMethod__はとにかく、機能のために働く。

ProxyサポートはECMAScriptの(ハーモニー)の次のバージョンのためunder discussionであり、さらに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です。

2

ええ、私もそれが欲しいです。そう、多くの、他の多くの人々をしてください。起こるつもりはない。これまでChrome(V8)はJS APIの点でWebkitに従います。 __noSuchMethod__はMozillaによって作成された非標準イベントで、ECMAScript(JavaScript)から正式に拒否されました。言い換えれば

は、それが存在することはありません: '(

(それがない場合は、それははるかに侃々諤々後になりますと、それはいつでもすぐに)

+0

これは残念です。任意のチャンスで回避策がありますか? – pimvdb

+0

いいえ、あまりにも低レベルなので、回避することはできません。さて、あなたはそれを探すならばパッチがありますが、クロムパッチを適用することはできますが、それはあなたのためだけに役立ち、一般的な開発ではありません:) –

関連する問題