Углубляюсь в ооп в js и назрел вопрос , а точнее правильно ли я понял одну вещь
// создаю метод sayHay как свойство экземпляра класса
function UserCreate(name, age, rol) {
this.name = name;
this.age = age;
this.rol = rol;
this.sayHay = function() {
console.log(`Hello: ${this.name},${this.age},${this.rol}`)
}
}
let userOne = new UserCreate('Jon', 33, 'developer')
userOne.sayHay()
// создаю метод в прототипе класса
function UserCreate(name, age, rol) {
this.name = name;
this.age = age;
this.rol = rol;
}
UserCreate.prototype.sayHay = function() {
console.log(`Hello: ${this.name},${this.age},${this.rol}`)
}
let userOne = new UserCreate('Jon', 33, 'developer')
userOne.sayHay()
// эта запись аналогична той которая выше ?
class UserCreate {
constructor(name, age, rol) {
this.name = name;
this.age = age;
this.rol = rol;
}
sayHay() {
console.log(`Hello: ${this.name},${this.age},${this.rol}`)
}
}
let userOne = new UserCreate('Jon', 33, 'developer')
userOne.sayHay()
Вопрос почему мы не создаем метод как свойство ,как в первом примере а создаем в прототипе конструктора
Я так понял это для того чтобы каждый экземпляр класса не заполнял память , когда мы можем определить метод в прототипе и от будут доступен всем экземплярам Правильно ли я понял ?