Как быстро врубиться в ООП в JS:
Все объекты. У объектов есть конструктор и прототип. Создание нового объекта - копирование прототипа в новый экземпляр объекта и вызов конструктора. В качестве контекста вызова конструктора будет использоваться экземпляр объекта. Конструктор - просто функция которая по умолчанию возвращает контекст вызова, но вы можете там сделать return и вывести любую херню.
Важно понимать что прототип копируется. То есть если вы создали 10 инстансов одного типа, потом поменяли прототип, например добавив метод), то у первых 10-ти инстансов этих методов не будет, а у новых - будет.
Наследование - просто объявляете тип со своим прототипом. В силу некоторых особенностей от некоторых типов не так то легко отнаследоваться без кастылей (например от массива).
Для упрощения работы в ES2015 новый синтаксис для объявления объектов своих типов.
Принципы ООП такие же как и везде, единственное что для инкапсуляции стоит еще про модули почитать так как в JS (как и в некоторых других языках) нет модификаторов доступа.