Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #71 (permalink)  
Старый 05.05.2015, 15:08
Профессор
Отправить личное сообщение для UIjs Посмотреть профиль Найти все сообщения от UIjs
 
Регистрация: 24.04.2015
Сообщений: 183

писать фильтры на кофескрипте одно удовольствие, и ни какой ES6 не сравнится)




Последний раз редактировалось UIjs, 05.05.2015 в 15:13.
Ответить с цитированием
  #72 (permalink)  
Старый 10.05.2015, 19:27
Профессор
Отправить личное сообщение для UIjs Посмотреть профиль Найти все сообщения от UIjs
 
Регистрация: 24.04.2015
Сообщений: 183

круто придумал))

вешается на Class.prorotype.parent геттер и когда запрашиваем это свойство то нам известно this из которого запрашивается это свойство, дальше мы запоминаем этот this. а в parent лежат функции обертки которые вызывают оригинальные родительские методы в контексте этого запомннеого текущего this который где то там хранится. и все)

таким образом получаем



Так же можжно кэшировать один раз запрошеную функцию), круто я придумал, kobezzza? так мы сможем хоть протектед сделать)
Ответить с цитированием
  #73 (permalink)  
Старый 10.05.2015, 19:33
Профессор
Отправить личное сообщение для UIjs Посмотреть профиль Найти все сообщения от UIjs
 
Регистрация: 24.04.2015
Сообщений: 183

кроме того eval сохраняет замыкание, по этому если запретить в обьявлении класса использовать замыкания во вне (а у меня это и так запрещено потому что все зависимости надо подключать как в ангуляре через параметры к функции), то тогда мы смоежм проивалить код функции описывающей класс и засунуть в её замыкание ссылки на свойства super parent и все такое

w = (function(){
    var qq = 11;
    return eval("(function(){ alert(qq) })")
})();


w()


поскольку обьявление класса не горячий кусок кода, так как классов будет не больше тысячи, а для яваскрипта сделать 1000 ивалов - ничто. то с быстротой тут проблема не стоит. единственное что так это нужно избежатьп аркинга кода класса. нужно использовать максимально нативные механизмы.


дальше встает проблема как передавать контекст this в те функции, которые мы запрашвиаем через parent и super


я просто думаю как сделать чтобы можно было писать не this.parent а просто parent, а дальше работала магия


можно например методы класса обернуть во врапперы, которые будут текущий this складывать в определенное место к которому parent будет иметь доступ. но опять же, врапперы. долго. нужно что то хитрее) помогай!

Последний раз редактировалось UIjs, 10.05.2015 в 19:39.
Ответить с цитированием
  #74 (permalink)  
Старый 10.05.2015, 20:09
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
круто я придумал, kobezzza?
Да, прикольно, я об этом не подумал.

Цитата:
кроме того eval сохраняет замыкание
С eval отладчики с ума сходят, тогда уж генерь Blob и подключай его как скрипт.

Цитата:
(а у меня это и так запрещено потому что все зависимости надо подключать как в ангуляре через параметры к функции)
Это очень плохой подход, люто бесит ангуляр за это. Проще использовать Java like подход - 1 класс = 1 файл, а зависимости подключать через нормальные модули ES6 или другого языка.

Цитата:
то тогда мы смоежм проивалить код функции описывающей класс и засунуть в её замыкание ссылки на свойства super parent и все такое
Да, но не будет нормальной поддержки IDE и программ стат анализа. Да и уж если на то пошло, то тогда лучше вообще отказаться от рантайм логики, а использовать подход макросов, аля http://sweetjs.org/

Т.е. почему бы тебе вместо того, чтобы плясать в рантайме и делать магию, а просто сделать надмножество над самим языком (как например Iced Coffee Script сделан над Coffee Script).
__________________
kobezzza
code monkey
Ответить с цитированием
  #75 (permalink)  
Старый 10.05.2015, 20:11
Профессор
Отправить личное сообщение для UIjs Посмотреть профиль Найти все сообщения от UIjs
 
Регистрация: 24.04.2015
Сообщений: 183

Сообщение от kobezzza
нормальные модули ES6
я уже подумал и понял что все это фигня, я же новый фреймворк решил писать Mega.js ну вот буду писать его на ES6 куда деваться. будут активно исползоваться сеттеры и геттеры. И все такое прочее.


добавлю таким же способом приватные в классы ES6


Сообщение от kobezzza
Т.е. почему бы тебе вместо того, чтобы плясать в рантайме и делать магию, а просто сделать надмножество над самим языком (как например Iced Coffee Script сделан над Coffee Script).
это самый очевидный подход и мне бы тогда не пришлось думать о производитедьности но тогда встает: нужны специальные тулзы для того чтобы писать на фреймворке. нужны плагины для поддержки нового синтаксиса.
Ответить с цитированием
  #76 (permalink)  
Старый 10.05.2015, 20:19
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от UIjs Посмотреть сообщение
это самый очевидный подход и мне бы тогда не пришлось думать о производитедьности но тогда встает: нужны специальные тулзы для того чтобы писать на фреймворке. нужны плагины для поддержки нового синтаксиса.
Тулзы сейчас используются везде, даже чертов CSS уже никто не пишет на CSS, поэтому тулзой больше-меньше - это ерунда. Про подсветку синтаксиса и т.д. - раз ты хочешь делать хороший продукт, то делай и окружение тоже.

Цитата:
я же новый фреймворк решил писать Mega.js
Хех, удачи
__________________
kobezzza
code monkey
Ответить с цитированием
  #77 (permalink)  
Старый 10.05.2015, 20:21
Профессор
Отправить личное сообщение для UIjs Посмотреть профиль Найти все сообщения от UIjs
 
Регистрация: 24.04.2015
Сообщений: 183

kobezzza, как уж там назывется крутой ES6 транслятор?
ну тип самый быстрый, самый минимальнокодагенерируемы й и.т.п.
Ответить с цитированием
  #78 (permalink)  
Старый 10.05.2015, 20:22
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от UIjs Посмотреть сообщение
kobezzza, как уж там назывется крутой ES6 транслятор?
ну тип самый быстрый, самый минимальнокодагенерируемы й и.т.п.
https://github.com/babel/babel
__________________
kobezzza
code monkey
Ответить с цитированием
  #79 (permalink)  
Старый 10.05.2015, 20:22
Профессор
Отправить личное сообщение для UIjs Посмотреть профиль Найти все сообщения от UIjs
 
Регистрация: 24.04.2015
Сообщений: 183

kobezzza, эт точно самый крутой?
Ответить с цитированием
  #80 (permalink)  
Старый 10.05.2015, 20:23
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от UIjs Посмотреть сообщение
kobezzza, эт точно самый крутой?
Да.
__________________
kobezzza
code monkey
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Знаменитая функция Class учавствует в фреймворке ui2/0 __он_самый__ Оффтопик 3 29.12.2014 13:19
Унылого треша тред megaupload Оффтопик 648 17.06.2014 14:31
AJAX функция для новых html-элементов broadcast77 AJAX и COMET 25 03.03.2014 14:01
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Как работает функция Class godofjavascript Оффтопик 58 17.12.2012 09:49