С появлением class в JS, JS как бы намекает на возможность более "стандартно" подходить к ООП. Да, это просто синтаксический сахар над функциями конструкторами, которыми мы могли пользоваться раньше. Но я никак не могу понять ОО подход в браузере и просто сайтах. Скажем есть интернет магазин в котором есть и jquery-плагины, и свой код. Вопрос. Как организовывать свой код в ОО стиле? Или он вообще не нужен никак? Можете подсказать или дать примеры? В гуглу по запросу выдаёт просто типовое использование. Вот есть класс животное, вот подкласс кролик. И видимо у меня мозга не хватает, что бы перенести это как-то в использование в браузерном JS. Помогите пожалуйста разобраться.
Я не работаю с jQuery. Плагины стараюсь находить либо без поддержки jquery, либо, если задача простая, пишу сам. Когда понадобится пойму? Я пытался несколько раз использовать объектный подход в разработке и всегда он казался мне каким-то неправильным. Например определенный блок в одном месте я описывал объектом и инициализировал его. Сразу возникал вопрос - зачем, если этот объект 1 и больше его нигде нет. Почему я задался таким вопросом? Потому что просто куски кода отвечающие за действия мне кажутся не красивыми и постоянно остаётся осадок, что можно было лучше.
Андрей Сальников: если работать с голыми данными в виде объекта, то иногда данные нужно модифицировать, добавить строки, удалить, заменить, сортирануть и т.п. вот тут можно создать класс с методами, и использовать его, там даже можно сделать метод рендера, чтоб в конечном итоге отдавал HTML и т.п.
Иногда может потребоваться отнаследоваться от этого класса.
Например корзина на сайте, просто объект или массив со строками заказа, пишем класс для работы с данными. И есть клиенты которым нужно считать доставку по другому, или скидку по другому или еще что-нибудь, вот можно для них отнаследоваться от базового класса и заменить методы и т.п.
Вот пока вы к этому не придете, и будете работать с DOM классы вряд ли понадобятся
lebonnet: Я вас понял. Тоесть работу с DOM как таковую делать через классы - не очень. Система описанная вами напомнила React.js где есть данные, которыми мы оперируем и выводим в виде HTML.
Вернусь к вашему примеру с корзиной. Тоесть условно говоря, загружается страница, я получаю данные ( скажем через XMLHtttpRequest ), а затем инициализирую данный класс, передавая в него эти данные, верно? Но всё равно это в большей степени нужно для работы именно с данными, а не с DOM'ом, да?
Андрей Сальников: не вижу необходимости в работе с DOM, однажды попробовав React, Riot, vue и т.п. фреймворки вряд ли кто-то перейдет обратно к работе с DOM, это другая концепция.
Все остальное вы правильно уловили.
если нужно какашкосайты, можно смело использовать React, Riot, vue и т.п... Если нужно реально работающая вещь, как ни крути.... в лучшем случаи это только подмешать jquery 1.х. В противном случаи, как написал ранее, будет какашкосайт с рандомной работоспособностью.... Ни один с фреймворков для жс"а не может похвастаться стабильной работой, потому следует выбирать с учетом того, под какой контингент делается ресурс... Кому то достаточно пользователей с компов/ноутов и смартов современного производства... А кому приходится делать реализацию еще и с поддержкой всевозможных консолей, тв, боксов и тд.... В последнем случаи, если не ставить цель конкретное устройство (или группа устройств), то применение каких либо либ просто невозможно и в части случаев, даже применение jquery является невозможным. Вот такие вот дела....
И да, чуть не забыл, если это вообще какие то корпоративные решения, то в частных случаях, придется думать даже о поддержке ИЕ6, не то, что бы говорить про 7й-8й. Мне этим летом свезло побывать в офисе одной компании, где на филии стояла 98я винда с ИЕ6. Система на всех филиях одна... а железки где современные, а где столь старые... Вот и думайте о необходимости возврата к работе с dom...