Большое количество статей присутствует в бескрайнем интернете об объектно-ориентированном программирование на JavaScript. Но мне как C# программисту, привыкшему к его ООП синтаксису и количеству возможностей, которые он дает, не одна из них не подходит. Почему же? Задача Что действительно нужно от ООП в JavaScript: Инкапсуляция Наследование Полиморфизм А теперь, по-порядку. NoPrototype Многие способы реализации объект-ориентированного программирования в JavaScript основаны на использовании прототипа ( например ), но ни один из них не решает поставленную мной задачу. Данный способ не будет основан на прототипах, так что с этого следует и название стиля. Но об это далее. Класс Единственное, что нам нужно, так это выработать единый стиль написания класса в JavaScript. Приведем пример класса на C#: public class Book { // конструктор public Book(string newName) { name = newName; } // приватное поле private ...