Проще говоря, в объектно-ориентированном программировании есть классы и объекты. Когда вы создаете экземпляр или создаете экземпляр класса, вы получаете объект.
Например, возьмите следующий класс автомобилей:
function Car(myVin) {
this.vin = myVin;
}
let myHonda = new Car(“24A6733HJ42983C55”);
let myFord = new Car(“JJ67100473KL93228”);
let momsMinivan = new Car(“JF293HJL679904611”);
Вы только что создали экземпляр класса Car три раза. Каждый экземпляр.
ES2015 (он же ES6) вводит ключевое слово класса и конструкторы:
class Car {
constructor(myVin) {
this.vin = myVin;
}
}
Это становится намного более запутанным.
IMO, если вы действительно хотите изучать ОО-программирование, лучше всего сначала изучить C ++. Там вы увидите классическое наследование в действии, с концепциями конструкторов, частных, защищенных и открытых элементов данных, шаблонами проектирования и другими ключевыми понятиями. Это создаст прочную основу, прежде чем вы погрузитесь в клуг, который является классическим наследием Ecmascript.
Под капотом у Javascript есть прототипическое наследование; Штукатурки Ecmascript классического наследования сверху. Это немного странно и хакерски, и для достижения приватности приходится делать странные вещи с замыканиями.
См. Ссылку ниже для хорошего урока по ООП в C ++.
https://m.youtube.com/watch?v=vz1O9nRyZaY