Narek
По стандарту, на данный момент, классы - сахар
Sergey
Ruslan
🤦♂️
У тебя просто иное понимание слова "сахар"
Sergey
Narek
Я выше линк дал, этого достаточно
Sergey
Таймураз
Деструктуризация, например- сахар
А классы если и сахар, то только на данный момент и то- с натяжкой
Таймураз
Можно по-разному пробежать по массиму или полям объекта, но все это- разные способы выполнения того же действия
Sergey
Таймураз
Классы и прототипирование могут выполнять одно и то же, но классы- новый уровень абстракции, на основе которого можно будет строить новые фичи
Max
а приватные поля у классов сейчас на какой стадии?
Таймураз
И делать то, что делают прототипы, только намного легче (быстрее)
Sergey
Оооо
Sergey
Кстати
Sergey
Обломайтесь нахуй
Sergey
class Foo {}
Foo()
Sergey
все
Sergey
идите нахуй
Sergey
классы имеют другое поведение
Sergey
Sergey
уже нихуя не сахар
Таймураз
Кстати
async/await и просто промисы
Sergey
Таймураз
асинхронная функция- уже не промис
Таймураз
Именно
Sergey
Таймураз
Суперкласс от промиса
Но под капотом иная реализация
Sergey
Narek
Ну такое, мне просто лень в спеке искать)
Narek
Although ECMAScript objects are not inherently class-based, it is often convenient to define class-like abstractions based upon a common pattern of constructor functions, prototype objects, and methods. The ECMAScript built-in objects themselves follow such a class-like pattern. Beginning with ECMAScript 2015, the ECMAScript language includes syntactic class definitions that permit programmers to concisely define objects that conform to the same class-like abstraction pattern used by the built-in objects.
Sergey
Narek
Нашел такое, но не сильно подходит, вроде
Sergey
я тебе привел пример РАЗНОГО поведения классов и функций
Таймураз
Narek
не, я увидел, да
Sergey
class-like abstraction pattern
Sergey
то есть “Похожее на класс"
Ruslan
Narek
Таймураз
Пацаны
Сделаю проще
Определитесь, что такое сахар
Ruslan
Ладно, чё вобще спорить из-за слова "сахар"... лучше функциональным программированием заняться
Narek
Even though ECMAScript includes syntax for class definitions, ECMAScript objects are not fundamentally class-based such as those in C++, Smalltalk, or Java. Instead objects may be created in various ways including via a literal notation or via constructors which create objects and then execute code that initializes all or part of them by assigning initial values to their properties.
Таймураз
"сахар- это углеводы!"
Narek
ach constructor is a function that has a property named "prototype" that is used to implement prototype-based inheritance and shared properties. Objects are created by using constructors in new expressions; for example, new Date(2009,11) creates a new Date object. Invoking a constructor without using new has consequences that depend on the constructor. For example, Date() produces a string representation of the current date and time rather than an object.
Narek
Ну такое, в общем
Дима
Narek
Я и не говорил, что всегда так будет))
Таймураз
Синтаксический сахар (англ. syntactic sugar) в языке программирования — это синтаксические возможности, применение которых не влияет на поведение программы, но делает использование языка более удобным для человека.
Классы- не сахар, так как поведение уже сейчас не такое, как у прототипа
Дима
После утверждения # уже разница будет очевидна
Таймураз
Имхо, в вики правильная формулировка
Дима
Но да, уже сейчас есть кейсы, когда их поведение отличается, я только не помню какие
Sergey
Narek
Narek
там вообще все было, лол
Дима
Да, клёвая
Дима
Особенно меня XML часть впечатлила
Sergey
Дима
Очень рад что всего этого не приняли
Narek
на свифт похоже, кстати
Ruslan
Таймураз
В Мск такое небо чистое
А я за компом сижу
I
Ruslan
Можно же в замыкании хранить
Дима
Неужели это удачная идея?
Не то чтобы без этого нельзя было жить, но раз начали развивать язык, то становится трудно остановиться.
Дима
Единственное, что у меня вызывает опасения — это import.meta. Нет ничего более беспомощного, безответственного и порочного, чем метапрограммирование. Я знаю, что рано или поздно мы перейдем и на эту дрянь
Sergey
Яков
ипосльую так :
Яков
var dbmanager = new Dbmanager(config.proxy,config.pbxes)
Яков
и дальше методы дергаю
Таймураз
Даже если сейчас ты сделаешь худо-бедно рабочую версию того, что ты задумал- все равно в будущем тот, кто будет работать над этим- огребет проблем
Яков
Яков
буду читать
Таймураз
оно уже худо-бедно работает.
Тогда для рефакторинга/добавления функционала лучше познать сакральные тайны JS-а, чтобы потом не было больно
Владимир
да все равно будет больно
Владимир
хоть учитайся