JavaScript
Классы в javascript
Сначала не смог понять классы, когда вижу this и в придачу кучу значений передающихся в функциях становится не по себе. а потом когда попытался разобраться в классах не увидел никакой возможностей, которой нельзя реализовать через объекты. Объясните пожалуйста, нужны ли они вообще, и в чем их преймущество?
Разница между ними есть только как между исходником и результатом, потому что объекты - реализация классов... по аналогии со всем, что вызывается командой new. Из этого следует, что в теории ты можешь написать конструкцию чисто под определенные задачи, где не может справится ни одна подготовленная заранее конструкция.
Однако на практике подобные попытки чаще всего являются мазохизмом и повторным изобретением велосипеда. Поэтому просто используй объекты и забудь классы, как страшный сон... по крайней мере в ключе сравнения с объектами - точно.
Если хочешь сравнивать, то сравнивай хотя бы похожие вещи. Например, объекты (new Object) и мапы (new Map). И тут найдется не мало отличий, несмотря на схожести.
Однако на практике подобные попытки чаще всего являются мазохизмом и повторным изобретением велосипеда. Поэтому просто используй объекты и забудь классы, как страшный сон... по крайней мере в ключе сравнения с объектами - точно.
Если хочешь сравнивать, то сравнивай хотя бы похожие вещи. Например, объекты (new Object) и мапы (new Map). И тут найдется не мало отличий, несмотря на схожести.
В JavaScript проnотипное ООП, в котором объект создаётся на основе другого объекта - прототипа. Но в большинстве ООП-языков другой подход: в котором разработчик создаёт шаблон объекта - класс, а потом по этому шаблону генерируются объекты.
И для того, чтобы ещё больше удешевить подготовку низкоквалифицированных JS-кодеров, несколько лет назад в JS были добавлены классы, которые просто маскируют внутри себя прототипы. Никакого нового функционала классы не добавили, зато позволили неучам не переучиваться с классов, которые они уже знают по другим языкам, на прототипы.
И для того, чтобы ещё больше удешевить подготовку низкоквалифицированных JS-кодеров, несколько лет назад в JS были добавлены классы, которые просто маскируют внутри себя прототипы. Никакого нового функционала классы не добавили, зато позволили неучам не переучиваться с классов, которые они уже знают по другим языкам, на прототипы.
В JS this обычно ссылается на объект по этому содержит его свойства и методы они как бы нужные но бесполезные т к когда смотришь на this видеть наследованные от стандартного класса поля вообще не нужно (ну если не делал прототипирование )
Небольшой ликбез по поводу того, что такое класс и объект в нормальных ООП языках.
Классы это описание объектов. Классы обычно содержат поля (переменные внутри ) и методы (функции внутри)
Попробую объяснить на аналогии. Есть класс машина, имеет поля название, год выпуска, пробег, кол-во лошадиных сил. А есть объект - Ваз 2109 - 1995 года выпуска.
В других языках обычно объекты могут быть только членами какого-то класса. А вот в JS человек может сам создавать объекты. А классы сделали чтобы было проще делать объекты и было похоже на другие языки.
А this это значит, что ты обращаешься к полю или методу объекта
Классы это описание объектов. Классы обычно содержат поля (переменные внутри ) и методы (функции внутри)
Попробую объяснить на аналогии. Есть класс машина, имеет поля название, год выпуска, пробег, кол-во лошадиных сил. А есть объект - Ваз 2109 - 1995 года выпуска.
В других языках обычно объекты могут быть только членами какого-то класса. А вот в JS человек может сам создавать объекты. А классы сделали чтобы было проще делать объекты и было похоже на другие языки.
А this это значит, что ты обращаешься к полю или методу объекта
Эээ. А ничего, что объект - это экземпляр класса? Почитай про основы ООП, многое прояснится! )
Похожие вопросы
- Зачем нужны классы в JavaScript?
- Почему javascript не добавляет класс к body через getattribute. Скрин тут
- Есть ли аналоги JavaScript?
- С чего начать учить JavaScript?
- Подскажите книги для изучения javascript? Хочу начать изучать веб программирование javascript подойтет для начала?
- Зачем нужен prototype в JavaScript?
- Тяжело ли выучить JavaScript?
- Как создать квадрат через JavaScript?
- Смотрел я тут учебный курс Евгения Попова по javascript. Удивил он (Попов) в паре мест...
- Имеет ли смысл изучать JavaScript если я полный ноль в веб программировании?