JavaScript

Классы в javascript

Сначала не смог понять классы, когда вижу this и в придачу кучу значений передающихся в функциях становится не по себе. а потом когда попытался разобраться в классах не увидел никакой возможностей, которой нельзя реализовать через объекты. Объясните пожалуйста, нужны ли они вообще, и в чем их преймущество?
Дима Казаков
Дима Казаков
6 773
Разница между ними есть только как между исходником и результатом, потому что объекты - реализация классов... по аналогии со всем, что вызывается командой new. Из этого следует, что в теории ты можешь написать конструкцию чисто под определенные задачи, где не может справится ни одна подготовленная заранее конструкция.

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

Если хочешь сравнивать, то сравнивай хотя бы похожие вещи. Например, объекты (new Object) и мапы (new Map). И тут найдется не мало отличий, несмотря на схожести.
УБ
Улан Батырбеков
64 494
Лучший ответ
В JavaScript проnотипное ООП, в котором объект создаётся на основе другого объекта - прототипа. Но в большинстве ООП-языков другой подход: в котором разработчик создаёт шаблон объекта - класс, а потом по этому шаблону генерируются объекты.

И для того, чтобы ещё больше удешевить подготовку низкоквалифицированных JS-кодеров, несколько лет назад в JS были добавлены классы, которые просто маскируют внутри себя прототипы. Никакого нового функционала классы не добавили, зато позволили неучам не переучиваться с классов, которые они уже знают по другим языкам, на прототипы.
Иванов Пашка
Иванов Пашка
50 860
В JS this обычно ссылается на объект по этому содержит его свойства и методы они как бы нужные но бесполезные т к когда смотришь на this видеть наследованные от стандартного класса поля вообще не нужно (ну если не делал прототипирование )
Небольшой ликбез по поводу того, что такое класс и объект в нормальных ООП языках.

Классы это описание объектов. Классы обычно содержат поля (переменные внутри ) и методы (функции внутри)
Попробую объяснить на аналогии. Есть класс машина, имеет поля название, год выпуска, пробег, кол-во лошадиных сил. А есть объект - Ваз 2109 - 1995 года выпуска.

В других языках обычно объекты могут быть только членами какого-то класса. А вот в JS человек может сам создавать объекты. А классы сделали чтобы было проще делать объекты и было похоже на другие языки.

А this это значит, что ты обращаешься к полю или методу объекта
Витя Филяев
Витя Филяев
28 652
Эээ. А ничего, что объект - это экземпляр класса? Почитай про основы ООП, многое прояснится! )
Serdar *******
Serdar *******
15 161