Перегрузка операторов + - и других
Есть ли в javascript-e возможность перегружать операторы + - и другие?
|
Нет.
|
А жаль, эхххххххх......
|
Прошу прощения за некропост.
Я тоже считал, что нет, но наткнулся на это http://www.2ality.com/2011/12/fake-o...erloading.html - спешу поделиться. |
moron, изложи тут суть в кратце, а то я, например, не перехожу по всяким непонятным ссылкам. Там не про .valueOf?
|
moron, это так - шуточки чтоб сломать мозги новичку. На деле неюзабельно.)
|
Цитата:
Цитата:
Цитата:
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 Видимо в этом действительно нет ничего особенного - моя радуга куда-то ушла. |
Часовой пояс GMT +3, время: 07:37. |