Есть ли 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).
Другими словами, он никогда не будет существовать: '(
(или, если это произойдет, это будет после долгих споров, и это не будет в ближайшее время)