Показать сообщение отдельно
  #7 (permalink)  
Старый 18.06.2014, 01:17
Аспирант
Отправить личное сообщение для moron Посмотреть профиль Найти все сообщения от moron
 
Регистрация: 29.07.2012
Сообщений: 49

Цитата:
На деле неюзабельно
Факт в том, что это есть, а юзкейс можно придумать.
Цитата:
Там не про .valueOf?
Оно, но до определения операторов я бы наврят ли сам дошел, а уж до git:jsDecorators или git:jsPipe - никогда в жисти.
Цитата:
изложи тут суть в кратце
В статье опператоры определяются следующим образом:
1) переопределяется метод valueOf так, что каждый обьект возвращает примитив 3, а так же пушит в массив операндов. Пример: point1+point2+point3 //=9 где point[1-3] обьекты стр.15-20
2) в итоге при разных операторах итоговых результат будет разный
3) дальше в игру вступают некросбраузерные, но безумно сладкие штуки defineProperty(ie8+) и нативный сетер(ie9+). стр.21 Нативный сеттер получает значение, представим: obj1+obj2+obj3 даст нам 9, а еще мы знаем количество операндов, определить что за оператор был не составит труда. стр.22-33
4) юзаем соотв. ф-юю. стр.38
Можно посмотреть так же в код jsPipe и jsDecorator(ссылки выше) - он простой, но это меня просто приятно удивило.
--
upd Но есть проблема: point1+point2-point3 он уже распарсит неверно Вроде...
upd2 Видимо в этом действительно нет ничего особенного - моя радуга куда-то ушла.

Последний раз редактировалось moron, 18.06.2014 в 01:33.
Ответить с цитированием