Есть ли Object.watch для всех свойств / прокладка для __noSuchMethod__? - PullRequest
1 голос
/ 21 июня 2011

Я хотел бы расширить localStorage, выполняя некоторый код каждый раз, когда параметр выбирается / сохраняется. Я мог бы определить метод получения / установки для всех существующих свойств localStorage, но проблема заключается в новых настройках.

Например, localStorage['somenewsetting'] = 123 создает новую настройку. Я хотел бы автоматически определить метод получения / установки для этого свойства, чтобы мой код добавления также выполнялся для новых настроек.

В основном мне нужно Object.watch, но для всех свойств. Я обнаружил __noSuchMethod__, но он недоступен в Chrome. Есть ли какие-либо прокладки для этого метода? Или есть другой способ наблюдения всех свойств объекта?

Опять же, мне нужно, чтобы это работало на Chrome.

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

Нет, по крайней мере, не для Chrome.В любом случае, __noSuchMethod__ работает только для функций.

Proxy поддержка обсуждается для следующей версии ECMAScript (Harmony), и даже уже реализована в SpiderMonkey .Боюсь, до тех пор вам не повезло.

- был запрос на реализацию __noSuchMethod__ в V8 , но он был отклонен.Запросы на реализацию Proxy больше не были успешными: 633 был объединен как дубликат , а команда Chromium не особо заботится о реализации поддержки Proxy .

2 голосов
/ 21 июня 2011

Да, я тоже этого хочу.Как и многие другие.Не произойдетКогда-либо.Chrome (V8) следует webkit с точки зрения его JS API.__noSuchMethod__ - это нестандартное событие, созданное Mozilla и официально отклоненное из ECMAScript (JavaScript).

Другими словами, оно никогда не будет существовать: '(

(или еслида, это будет после долгих споров и не скоро)

...