Дима
let был придуман, чтобы не писать self = this
fat arrows же function будет иметь свой this
Sergey
есть ч0 по делу сказать ?
Таймураз дело говорит. Тебе надо учить язык. Причем начиная с ранних версий и заканчивая последними стандартами.
Таймураз
fat arrows же function будет иметь свой this
Сова к этому и клонит Он не понимает, как работают стрелочные и поэтому копирует контекст
Sergey
fat arrows же function будет иметь свой this
Вообще да. Но я тут ещё в голове и скоуп let/const вспомнил)
Таймураз
Можно мне какие-нибудь права?)
Дима
Нет, только обязанности
Дима
🌚
Таймураз
Не только право голосовать А в чатике
Таймураз
Яков аж прям замолчал
Яков
а ч0 сказать то? код для es5 был написан
Яков
не давно обновился до es6
Sergey
вкурсе
и как ты юзаешь эту функцию?
Таймураз
и как ты юзаешь эту функцию?
Да ладно тебе, сова Видно же, что он недавно в ноде, если на жс хотя бы во фронте работал Он с базой неправильно работает
Sergey
ну вдруг там без new
Sergey
и несколько инстансов создает
Sergey
вот тебе и сайд эффект
Таймураз
Там куча всего mysql.createPool может undefined, либо исполняющийся промис вернуть, он это дело пишет в объект массива со строковым ключом, массив на эти проперти не обращает внимания, а он не подозревает об этом
Sergey
?
тебя это не смутило?
I
тебя это не смутило?
он просто контекст сохраняет, в чем проблема то
Таймураз
видимо после пхп пришел
Вроде как все лето на пхп просидел, но до сих пор дергает, когда даже читаю это слово
Sergey
он просто контекст сохраняет, в чем проблема то
в том, что у него ES6 а в es6 НЕ НАДО сохранять контекст, ибо есть arrow-function
Таймураз
Вроде как все лето на пхп просидел, но до сих пор дергает, когда даже читаю это слово
А, нет Тут прямая зависимость Я же теперь лично знаю, что такое пхп
Sergey
у arrow function же свой контекст вроде как
arrow function сохраняет контекста места объявления
I
arrow function сохраняет контекста места объявления
по сути? Я тоже так всегда писал, лол)
I
Теперь буду знать
Sergey
у arrow function же свой контекст вроде как
const self = this const foo = () => { this === self }
Sergey
по сути? Я тоже так всегда писал, лол)
лол а статью дочитать в которой узнал о стрелочных функциях никак?
I
Думал просто шорткат
Sergey
лол
Sergey
надо статьи читать
Sergey
ты наверное думаешь, что классы это сахар над прототипами
I
надо статьи читать
у меня в pocket много статей, руки не доходят
Sergey
у меня в pocket много статей, руки не доходят
такая же фигня 😂 но читаю по чуть чуть
I
ты наверное думаешь, что классы это сахар над прототипами
при транспайле они в те же джс функции преобразуются
Aleksei
в том, что у него ES6 а в es6 НЕ НАДО сохранять контекст, ибо есть arrow-function
Было бы интересно посмотреть на этот же кусок в твоем исполнении)
Sergey
при транспайле они в те же джс функции преобразуются
транспайл != правильная реализация в v8, классы имеют другую реализацию транспайл это попытка реализовать работу конечного кода максимально близко к стандарту
Yuriy
Хаскель — ето сахар над C
Ну хоть кто-то правду в этом чате пишет.
Ruslan
ты наверное думаешь, что классы это сахар над прототипами
При использовании классов получается цепочка прототипов, которую и без классов реализовать можно
Таймураз
∀ язык программирования - сахар над байткодом
I
ты наверное думаешь, что классы это сахар над прототипами
не могу статью найти где описана разница классов и прототипов
Таймураз
Не все языки
Эта формулировка тоже ошибочна? Опять забыл кого-то?)
Sergey
Max
показать код v8?
необязательно, достаточно будет статьи о внутренней реализации и различиях
Sergey
необязательно, достаточно будет статьи о внутренней реализации и различиях
если сейчас “Вася” пойдет напишет статью о том, что это одно и тоже, ты поверишь?
Таймураз
Байткод для вм
Байткод для вм- тот же байткод
сomorsiс
А как же машинный код?
Sergey
к тому же
Ruslan
можно на жс написать clojurescript и что?
https://gist.github.com/doasync/74560203b927fc58159a3aba14e0c977
Таймураз
А как же машинный код?
Блин Машинный код процессором обрабатывается А байткод- виртуальной машиной
Sergey
как только запилят private properties, то реализовать их без костылей на es6 будет нельзя, only class with private properties
Таймураз
А как же машинный код?
Я пока еще не придумал как отмазаться)
Sergey
https://gist.github.com/doasync/74560203b927fc58159a3aba14e0c977
Ты не различаешь “реализацию ради похожести на стандарт” и “точную реализацию стандарта” ?
Narek
JavaScript classes, introduced in ECMAScript 2015, are primarily syntactical sugar over JavaScript's existing prototype-based inheritance. The class syntax is not introducing a new object-oriented inheritance model to JavaScript. JavaScript classes provide a much simpler and clearer syntax to create objects and deal with inheritance. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes
Ruslan
Sergey
🤦‍♂️
Ruslan
Просто я заинтригован
Таймураз
А как же машинный код?
Ладно, больше думаю- больше понимаю, что разница принципиальная
Sergey
Я понимаю, реализация и всё такое... но почему классы не сахар?
потому что у них более важная роль они сейчас выглядят как сахар. Но под капотом имеют другую реализацию, соответственно другие оптимизации
Sergey
сахар — это просто синтаксис и ничего больше но если синтаксис имеет под капотом другую реализацию, то это не сахар, это другая реализация
Sergey
ты ещё назови .forEach сахаром для for () {}
Narek
Если какой-то конкретный движок, реализующий стандарт, имеет какие-то оптимизации для какого-то кейса - это не значит, что так должно быть по стандарту