Где конкретно прочитать про правильную реализацию ООП на javascript?
В ES5 так// Создание супер класса
var SuperClass = function() {
	// Создание свойств супер класса
	this.prop = "property";
}

// Добавление методов в прототип супер класса
SuperClass.prototype.method = function() {
	return this.prop;
};

// Наследование
var SubClass = function() {
	// Наследование свойств супер класса
	SuperClass.apply(this, arguments);

	// создание собственных свойств
	this.prop = "property";
}

// Наследование методов супер класса
SubClass.prototype = Object.create(SuperClass.prototype);
// Возврат значения свойства constructor
SubClass.prototype.constructor = SubClass;

// Создание собственных методов
SubClass.prototype.subMethod = function() {
	console.log("yo!");
};

// Создания экземпляра класса
var instance = new SubClass();

// Вызов методов экземпляра
instance.subMethod();
console.log(instance.method());
console.log(instance.prop);
хорошые книги)