Есть ли Object.watch для всех свойств / прокладка для __noSuchMethod__?

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

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

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

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

2 ответа

Решение

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

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

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

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

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

(или, если это произойдет, это будет после долгих споров, и это не будет в ближайшее время)

Другие вопросы по тегам