ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Categories:

Учебник по JavaScript: ч.1: Классы

Прочел девятый раздел («Классы») первой части («Язык программирования JavaScript») учебника по JavaScript.

https://learn.javascript.ru

Часть 1. Язык программирования JavaScript (в т.ч. 93 подраздела)

Разделы:

9. Классы (7 подразделов)

9.1 Класс: базовый синтаксис
9.2 Наследование классов
9.3 Статические свойства и методы
9.4 Приватные и защищённые методы и свойства
9.5 Расширение встроенных классов
9.6 Проверка класса: "instanceof"
9.7 Примеси

Ранее я уже написал два поста, касающихся подраздела 9.1 учебника:
1. JavaScript: класс VS функция-конструктор
2. JavaScript: класс VS функция-конструктор (визуализация)

Если в части работы с функциями язык JavaScript показался мне очень хорош, то в части работы с классами он выглядит еще очень сырым (хотел написать, что язык JavaScript — молодой, но он родился, как я понимаю, в 1995 году... так что не такой уж он и молодой). Многие вещи, описываемые в разделе 9 учебника, еще даже не включены в спецификацию языка, а являются экспериментальными (реализованы в некоторых популярных браузерах).

Например, это касается статических свойств и приватных свойств класса.

Защищённые свойства реализованы не на уровне языка, а на уровне соглашения (хоть и общеизвестного) между программистами!

Возможность множественного наследования в языке JavaScript отсутствует. В качестве альтернативы предлагается механизм примесей. Примесь (по-английски «mix in») — это класс (в подразделе 9.7 учебника вместо классов в качестве примеров примесей приведены объекты), который не предназначен для создания собственных объектов, а содержит методы, которые можно скопировать в другой класс, придав таким образом этому другому классу дополнительную функциональность.

У каждой из альтернатив (примеси и множественное наследование) имеются свои плюсы и свои минусы. В википедии есть статья, посвященная примесям в программировании:
https://ru.wikipedia.org/wiki/Примесь_(программирование)
Tags: Образование, Программирование
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments