Задать вопрос
@alexnotonfire

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

Я не понимаю, в каких случаях необходимо метод объекта объявлять в самом конструкторе, а когда - в прототипе.

Вот например в коде ниже я не вижу разницы между двумя методами и хотелось бы чтобы кто-то пролил свет на их использование.

function A() {
  this.method = function() {
    alert('Метод конструктора');
  }
}

A.prototype.method2 = function() {
	alert('Метод прототипа');
}

let object = new A();


Известно ведь, что в новом стандарте ES6 с синтаксисом классов и вовсе нет методов в конструкторе.
  • Вопрос задан
  • 1336 просмотров
Подписаться 2 Простой 2 комментария
Решение пользователя Евгений К ответам на вопрос (5)
EShein
@EShein
Shein
Например у вас есть 1000 объектов, у каждого объекта в конструкторе есть метод который делает одно и тоже для каждого объекта. Занимает память? думаю да. Можно в прототип вынести этот метод и метод будет всего один для каждого объекта, а к нему будут вести ссылки. С точки зрения оптимизации так будет лучше.
Ответ написан