Функция Class жива!
А между тем победоносная самая лучшая в мире функция Class развилась и перекочевала жить в ui.js ^_^ и теперь называется extend. Вот кстати че она может:
<script src="//uijs.ru/ui.js"></script> <script> // создадим Родителя var Animal = ui.extend({ constructor: function () { this.private.name = 'Animal'; // приватное свойство name }, say: function () { alert(this.private.name); // 'Animal' } }); // создадим Ребенка и наследуем его от родителя var Rabbit = Animal.extend(new function () { this.constructor = function () { this.private.name = 'Rabbit'; // приватное свойство name this.super(); // поскольку перекрыли родительский конструктор, вызовем его }; // перекрываем метод say this.say = function () { this.super(); // 'Animal' alert(this.private.name); // 'Rabbit' alert(this.static.prop); // 11 } }); Rabbit.prop = 11; // зададим классу статическое свойство var rabbit = new Rabbit(); rabbit.say(); // запускаем шарманку </script> Также наследовать можно от нативных классов: <script src="//uijs.ru/ui.js"></script> <script> var List = ui.extend(Array, { constructor: function () { this.name = 'List'; }, // перекроем родительский метод push: function (item) { this.super(item); // вызовем оригинальный метод alert(this.name); // ну и добавим доп функционал } }); var list = new List(); list.push('lol'); // 'list' list.push('lol'); // 'list' alert(list instanceof Array); // true alert(list instanceof List); // true </script> Ну а с классами кофескрипта она вообще идеально сочитается, она вообще под них и затачивалась потому что я на нем пишу, просто передаешь класс и все и она его понимает). P.S. и это лишь маааааалая часть моего мегафреймворка, он коненчо крутой и уже лучше ангуляра и такой же быстрый как реакт потому что использует ассинхронный рендеринг, но еще пол годика или годик нужно подождать до статьи на хабре, он сыроват, я хочу туда добавить ТАКИЕ фишки чтобы волосы на жопе дыбом стояли, вроде переводчика и языковых пакетов. и.т.п. и чтобы перевод можно было делать прям в интерфейсе зажав шифт например и тыкнув на элемент. |
Чувак, ты опоздал. Ребята из TC39 уже реализовали классы на уровне синтаксиса)
http://www.2ality.com/2015/02/es6-classes-final.html |
Erolast, обьяснять? или ты троллишь. ну давай обьясню так и быть. классы существуют уже лет 10 с появлением препроцессеров типа кофескрипта. у меня же есть такая штука как отложеная инициализация. то есть классы опсиываются в любом порядке и при инициализации одного класса засивимости тоже инициализируются. такое не провернуть используя синтаксис. потому что синтаксис требует чтобы выше был обьявлен класс родитель. так же у меня есть приватные и статик свойства. Так же мое работает УЖЕ СЕЙЧАС и прослойка жрет ну максикум 3-5% производительности.
Я уже молчу про то что ни что не мешает использовать и эти классы в фреймворке и делать наследование за рамками фреймворка вручную. вот как выглядит работа с классами и наследованием контроллеров через кофескрипт |
UIjs,
Привет максимус! :) |
l-liava-l,
Привет)) Я теперь Иван Вольнов зависаю на страничке Евгения Вольнова. Так и живем |
Ого, какие люди вернулись ЖВ
|
UIjs,
я думал ты умер. //классическая шутка. |
Цитата:
Сделай до завтра ;) Цитата:
Цитата:
Я так понимаю ты пытаешься туда все реализации запихнуть. Люди будут использовать полифиллы + твою реализацию полифилов? Или твою реализацию и если в ней нет нужного полифилла, то + нужный полифилл? Хз как тебе, но мне проще сделать сборку из нужных полифиллов, в будущем не нужно переучиваться. Иногда ставишь свою обертку, например на localStorage, чтобы работать как с объектом и названия были чистые, а в базе грязные. Вроде норм подход, чем тебе не понравился? |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Фишка в том что если там куда ты тыкнул было просто слово то он запомнит перевод и будет вставлять его в это место и все. Если же ты тыкнул в то место которое подставилось из выраженияну типа {{'dd'}} то тогда проблематично, но я наверное на первых парах просто не разрешу словаиз выражений переводить и все. Так же проблема в том чт разметка динамическая и зависит от данных. Все везде репатится отключается подключается. И нужно определить в какое именно место твой перевод, описаный один раз, вставлять. Так что это ООЧЕНЬ сложная задачка месяца на 1-2. ты просто не верно вначале понял о чем я. Цитата:
Цитата:
Цитата:
там же все как и в ангуляре удобно оборачивать в контроллеры и компоненты. плагины на jquery можно оборачивать в компоненты (директивы ангуляра) а какие то либы в контроллеры (сервисы в ангуляре) Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Gozar, ой а погодика, у меня же появится отложеная загрузка зависимостей из uiмаркета типа пишешь модуль, если его нет подоключеного как файла то он пытатся подгрузиться из маркета прозрачно для тебя (и кэшируется на пару дней). Я просто часто используемые оставлю контроллеры и компоненты. А редкоиспользуемые вынесу в маркет и все О_О
На этой штуке мы уже нашей студией клепаем сайтики) меня доолго и сильно уговаривали "закрыть код" и начать продавать её, на что я обьяснил что продавать это бессмысленно потому что ни кто не купит а кому надо то украдут, а кому не надо было ещебольше ненадо станет. а вот создать маркет компонентов где люди смогут пилить что то и нувыпоняли. это уже тема. и будут люди указывать допустим ui.controller('MyUser', ['$md5'], function($md5){ }) и если md5 не подключен как яваскриптовый файл, то он загрузится из сети. Какие подводные камни? п.с. но ИИМХО кэш кэшем конечно, но мне кажется лучше все в оном файле |
Цитата:
Цитата:
Цитата:
|
Цитата:
ну есь вот у меня $md5 ну есть у тебя свой $md5 ну не подгружай ты свой md5 используй мой md5. что не так? Или у тебя уже пак из которого md5 не вырвать? |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Я к тому, что зависимость от либы тяжела. |
я не понимааююю, я правда не врубаю, обьясни в чем проблема? какой функционал С ЧЕМ дублируется я до сих пор не врубил). ЕСЛИ ТВОЯ ЛИБА делает то же самое ТО ЗАЧЕМ ЕЁ ПОДКЛЮЧАТЬ? К тому же если ты подключаешь что то то ЗАПРЕЩЕНО ПО СТАНДАРТУ использовать это НЕ как контроллер, то есть ты обязан будешь обернуть это в контроллер (2 строчки кода)
Просто ответь на мой вопрос, С ЧЕМ дублируется мой встроенный функционал? Если у тебя есть свой,болеее крутой чем у меня аяксер, то ради бога, подключи и используй свой, если нет то используй мой. |
UIjs,
Я хз, что ты так нервничаешь. Я просто пытаюсь понять смысл твоего поделия. Пока не доходит. Смысл поделия babel для меня однозначно очевиден: писать на es6 со всеми плюхами, а дальше и на es7. А вот смысл твоей либы, я пока теряюсь в догадках. У неё какое-то реальное преимущество есть перед тем же babel? Загрузка модулей из сети я так понял плюс? но уникальный твой синтаксис это ведь минус. Я просто хочу понять, почему ты идешь путем изобретения, я по такому пути шел и больше ни за что не пойду. Велосипеды хороши пока их изобретаешь. |
Цитата:
|
UIjs,
Чёт я не понял, ты где? Ты насоздавал десятки тем про свою либу и теперь не можешь описать её плюсы? Или ты плюсы описываешь? :) Если нет, то ты же понимаешь что это значит?! |
Цитата:
Ну а заодно и небольшой трейлер к фреймворку. Я не совсем понял. Ну есть у тебя локалсторч который делает то же самое. Ну и отлично же. Значит тебе не придется его подключать так как он УЖЕ ВСТРОЕН В МОЮ ЛИБУ. и ты спожешь использовать мою либу БЕЗ ПОДКЛЮЧЕНИЯ какой то сторонней фигни так как уже из коробки в ней все это есть. Разве не здорово? |
Цитата:
Animal={ create: function(){return Object.create(this)}, createPrivate: function(name){this.say=function(){alert(name)}} } Animal.createPrivate("Animal") with(Rabbit=Animal.create()) createPrivate("Rabbit") Animal.say() // Animal Rabbit.say() // Rabbit может проблема в том, что эти идиоты JS ниасилили? И тут, кстати, настоящая приватность, а не то что у тебя. Цитата:
https://www.linux.org.ru/forum/web-d...5?cid=11492226 |
jscripter, слишком толсто, попробуй потоньше.
Gozar, вот пример того для чего классы нужны http://www.youtube.com/watch?v=sFMtIGhZENE |
Цитата:
Огласите весь список пожалуйста. (с) Сэкономь себе и нам время, напиши плюсы и минусы твоей ui и ангуляра. Сейчас за ангуляр то, что его гугловцы пишут, известность знаете ли. Но если у тебя будет однозначно больше плюсов, то почему бы и нет?! |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
То есть процесс подготовки и рассуждения отвлекают от сути? Не хочется смотреть как я додумываю хочется чтобы я уверенно четко нес инфу?
а вот еще видео сделал))) http://www.youtube.com/watch?v=IcW_bKOln-U |
Цитата:
Цитата:
Я понимаю, что ты писал свою либо 2 года, но я то её вижу впервые, да ещё и в кофе. Любые даже самые незначительные ошибки сбивают с толка. А ты не просто делаешь мелкие правки, ты ещё и делаешь их в громадном количестве. Если я начну рассуждать (в виде sql запросов) о связях в orientDB, как у меня таблички связываются четырех уровневыми пробежками out по граням и что тут я могу json-чиком хранить или лучше не надо, а может потом, ты ничего не поймешь, даже если до этого ты и писал mysql запросы. Объясняешь Class, так объясни сначала, а потом рассуждай, что там можно с ней сделать. И зачем ты в видео вставил рассуждения про сервер? Оглавление знаешь что такое? Ты сможешь сделать оглавление к твоему видео, по минутам. Если не сможешь, то твоё видео это словесный бессвязный бред! |
Понял, ни разу не было чтобы я нормально записал видео. Попробую зарание заготовить текст.
|
Администрация, прошу дать предупреждение за троллинг человеку который оскорбялет меня минусуя в карму. Такое поведение пользователей ставит под сомнение серьезность ресурса, несмотря на отличные статьи. Мне помнится меня за такое поведение банили, и правильно делали.
|
Цитата:
|
Цитата:
Администрация, прошу дать награждение за смайлик человеку который хвалит меня плюсуя в карму. Такое поведение пользователей не ставит под сомнение серьезность ресурса, в добавок к отличным статьям. Мне помнится меня за такое поощряли, и правильно делали. |
Цитата:
Цитата:
Цитата:
|
Цитата:
Но я был бы рад, если бы в JS добавили модификаторы свойств класса, а ля Java. class Foo { private method() { } protected prop = 1; // По умолчанию свойство публично someMethod() { } } Это просто синтаксически наглядно и позволит улучшить статический анализ в IDE. |
Цитата:
Цитата:
Цитата:
function Class() { /*один код*/ } Class.prototype.constructor = function(){ /*другой код*/ } static это Class |
Цитата:
|
Часовой пояс GMT +3, время: 05:41. |