писать фильтры на кофескрипте одно удовольствие, и ни какой ES6 не сравнится)
![]() ![]() |
круто придумал))
вешается на Class.prorotype.parent геттер и когда запрашиваем это свойство то нам известно this из которого запрашивается это свойство, дальше мы запоминаем этот this. а в parent лежат функции обертки которые вызывают оригинальные родительские методы в контексте этого запомннеого текущего this который где то там хранится. и все) таким образом получаем ![]() Так же можжно кэшировать один раз запрошеную функцию), круто я придумал, kobezzza? так мы сможем хоть протектед сделать) |
кроме того eval сохраняет замыкание, по этому если запретить в обьявлении класса использовать замыкания во вне (а у меня это и так запрещено потому что все зависимости надо подключать как в ангуляре через параметры к функции), то тогда мы смоежм проивалить код функции описывающей класс и засунуть в её замыкание ссылки на свойства super parent и все такое
w = (function(){ var qq = 11; return eval("(function(){ alert(qq) })") })(); w() поскольку обьявление класса не горячий кусок кода, так как классов будет не больше тысячи, а для яваскрипта сделать 1000 ивалов - ничто. то с быстротой тут проблема не стоит. единственное что так это нужно избежатьп аркинга кода класса. нужно использовать максимально нативные механизмы. дальше встает проблема как передавать контекст this в те функции, которые мы запрашвиаем через parent и super я просто думаю как сделать чтобы можно было писать не this.parent а просто parent, а дальше работала магия можно например методы класса обернуть во врапперы, которые будут текущий this складывать в определенное место к которому parent будет иметь доступ. но опять же, врапперы. долго. нужно что то хитрее) помогай! |
Цитата:
Цитата:
Цитата:
Цитата:
Т.е. почему бы тебе вместо того, чтобы плясать в рантайме и делать магию, а просто сделать надмножество над самим языком (как например Iced Coffee Script сделан над Coffee Script). |
Цитата:
добавлю таким же способом приватные в классы ES6 Цитата:
|
Цитата:
Цитата:
|
kobezzza, как уж там назывется крутой ES6 транслятор?
ну тип самый быстрый, самый минимальнокодагенерируемы й и.т.п. |
Цитата:
|
kobezzza, эт точно самый крутой?
|
Цитата:
|
Часовой пояс GMT +3, время: 12:39. |