Найти тему
Максим Гречушников

Когда использовать методы в конструкторе, а когда — в прототипе?

На первый взгляд в коде ниже нет ни какой разницы

function A() {
this.method = function() {
alert('Метод конструктора');
}
}
A.prototype.method2 = function() {
alert('Метод прототипа');
}
let object = new A();

Но давайте предположим, что у вас есть 1000 объектов, у каждого объекта в конструкторе есть метод который делает одно и тоже для каждого объекта. Занимает память? думаю да.

Но если мы вынесем в прототип этот метод, то метод будет всего один для каждого объекта и к нему будут вести ссылки.

С точки зрения оптимизации так будет лучше.