Показать сообщение отдельно
  #329 (permalink)  
Старый 05.11.2015, 13:57
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Лично меня в defineProperty привлекает скорость и последовательность (читай, синхронность).

На самом деле, было бы круто иметь симбиоз O.o, Proxy и defineProperty. Сейчас все три технологии имеют свои минусы.

1. O.o не умеет слушать отдельные свойства, не умеет быть синхронным без вызова deliverChangeRecords.
2. Proxy не поддерживает асинхронность, не умеет слушать отдельные свойства, не позволяет работать с объектом напрямую.
3. defineProperty не умеет слушать delete и не может быть асинхронным.

В идеале, хотелось бы видеть один API, который:
- Позволяет опционально включить асинхронность.
- Позволяет, по выбору программиста, слушать все изменения или изменения отдельных свойств (например, длины массива) для увелиения производительности.
- Из изменений слушает delete, get, set.
- Слушает set, не заставляя перезаписывать акцессор.
- Позволяет работать с объектом напрямую.
- Позволяет, как и прокси, переопределить стандартное поведение JavaScript (например, при delete, не удалять свойство, а запускать произвольный код).

Мне не очень нравится идея удаления О.о из спецификации, но если этот ход ведет к созданию единого API, который сочетает в себе плюсы всех трех технологий, я только за. Но пока, если я правильно понимаю, ничего такого не предвидится.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности

Последний раз редактировалось FINoM, 05.11.2015 в 14:15.
Ответить с цитированием