Совет в изучении ООП JavaScript?
Как быстро врубиться в ООП в JS:
Все объекты. У объектов есть конструктор и прототип. Создание нового объекта - копирование прототипа в новый экземпляр объекта и вызов конструктора. В качестве контекста вызова конструктора будет использоваться экземпляр объекта. Конструктор - просто функция которая по умолчанию возвращает контекст вызова, но вы можете там сделать return и вывести любую херню.
Важно понимать что прототип копируется. То есть если вы создали 10 инстансов одного типа, потом поменяли прототип, например добавив метод), то у первых 10-ти инстансов этих методов не будет, а у новых - будет.
Наследование - просто объявляете тип со своим прототипом. В силу некоторых особенностей от некоторых типов не так то легко отнаследоваться без кастылей (например от массива).
Для упрощения работы в ES2015 новый синтаксис для объявления объектов своих типов.
Принципы ООП такие же как и везде, единственное что для инкапсуляции стоит еще про модули почитать так как в JS (как и в некоторых других языках) нет модификаторов доступа.
Можно еще через OOP в Ruby. www.theodinproject.com/ruby-programming/object-ori...
Берете OOP в Ruby, отсекаете Классы и Мета-классы, добавляете (вместо классов и метаклассов) — свою реализацию типа https://github.com/dfilatov/inherit или любую другую — получаете классы в JS.
ES6 классы, насколько я знаю, это просто сахар, так что не питайте надежд — оно не далеко уйдет от того, что есть сейчас, просто появится возможность писать более коротко.