Расширение встроенных объектов JavaScript означает добавление новых методов или свойств к уже существующим объектам языка, таким как Array, String и Object.
У меня был пост про прототипы, где я рассказывал, как можно расширить или переопределить методы массивов или объектов.
Почему новичку учить и уметь это делать - не обязательно?
- Как минимум расширение поведения встроенных объектов не приветствуется и является плохой практикой (monkey patching). Это нарушает принцип инкапсуляции и засоряет базовые объекты не задокументированной функциональностью. - Другие разработчики могут не ожидать, что базовые объекты имеют дополнительные методы. Это может вызвать путаницу и ошибки. - Если две библиотеки пытаются добавить метод с одним и тем же именем, но с разным поведением, это приведет к проблемам. - В будущем язык может ввести новые методы, которые могут конфликтовать с вашими расширениями, что приведет к проблемам совместимости.
Если вам понадобится это в будущем, то на опыте вы поймете что к чему💪
Но в целом это не сложно, берешь глобальный объект и через прототип просто добавляешь новый метод👍
Еще на работе интересная задача. Делаю полноценный графический редактор, как фигма, немного проще😄
Но уже проделал огромную работу. Реализовал: - Перемещение слоев - Добавление в группы - Удаление слоев - Настройка элементов (смена названий, смена атрибутов, смена назначений) - Функционал масок - Добавление обьектов и картинок в редактор - Настойка слоев (изменение цвета, опасити, размера, поворота, флипа) - Сохранение элементов после изменений - Отмена действий (ctrl + z / ctrl + shift + z) - История изменений
И многое другое
Сейчас реализовываю работу с 3D в редакторе💪
Короче, ребята, программирование - это круто и интересно💪 Жду вас в наших рядах! Постараюсь помочь вам💛
Свой сервис я почти доделал, скоро буду настраивать сервер, бд и тд. Ну как доделал... Конечно еще много работы предстоит, много правок, тестирования, оптимизаций, изменение дизайна, обработку ошибок. Но это уже дорабатывать после запуска. Пусть клиенты тестируют))) У меня денег на тестировщиков нет😆
Приложение работает, много функций, но в продакшен выпускать нельзя, только для своих клиентов, которые уже пользуются Бета версией, пользуются полгода и всем нравится💪 говорят простой дизайн, минималистично все, но удобно☝️
Бета версию я сделал еще в марте. С тех пор люди пользуются. С мая я делал с нуля рефакторинг. Переделал бекенд, фронтенд, сменил фреймворки, базу данных. Подшаманил и сделал лучше в 100 раз, осталось только добить. Новую версию считаю так же Бета, но 2.0 :))
В ноябре, как добавлю сервер и запущу новую версию, в два раза увеличу время на создание видео.
Пока что не указывал React Router, Redux Toolkit, RTK Query Так как для этих тем нужен тоже полноценный курс. Планирую тоже сделать, но позже, нужно отдохнуть от TypeScript😄
До нового года хочу выпустить полную сборку:
1 - HTML 2 - CSS 3 - JS 4 - React (есть, но хочеться переснять в будущем) 5 - TypeScript (есть) 6 - React Router 7 - Redux Toolkit 8 - RTK Query 9 - Next Js (возможно) 10 - Тестирование (было бы круто)
Из практики:
1 - React Новости превратить в большое приложение с различными АПИ, страницами, дизайнами, авторизацией, логикой, сменой темы и языка 2 - Сделать еще проект на чистом JS, css, html.
Feature detection, feature inference и User Agent String — это методы, позволяющие определить возможности и особенности работы браузера.
Feature Detection:
- Проверяет, поддерживает ли браузер конкретную функцию или API. - Например, вы можете проверить, поддерживает ли браузер localStorage прежде, чем использовать его.
Feature Inference:
- Основан на предположении, что наличие одной функции в браузере гарантирует наличие другой. - Например, если браузер поддерживает один HTML5 API, он, возможно, поддерживает и другие. Однако такой подход не является надежным.
User Agent String:
- Это идентификатор браузера, который он отправляет веб-серверу при запросе страницы. - Позволяет определить браузер, ОС и другие детали, но может быть легко подделан или изменен.