Преимущества использования прототипа по сравнению с определением методов прямо в конструкторе? [Дубликат]
На этот вопрос уже есть ответ:
Использование «прототипа» против «этого» в JavaScript? 14 ответовМне интересно, есть ли какие-либо преимущества в использовании одного из них по сравнению с другим, и каким путем я должен идти?
Конструкторский подход:
var Class = function () {
this.calc = function (a, b) {
return a + b;
};
};
Прототипный подход:
var Class = function () {};
Class.prototype.calc = function (a, b) {
return a + b;
};
Мне не нравится, используя прототип, определения методов отделены от класса, и я не знаю, есть ли какая-то конкретная причина, по которой я должен использовать это только для первого подхода.
Кроме того, есть ли какое-либо преимущество использования литерала функции для определения «класса» по сравнению с определением функции:
var Class = function () {};
Против
function Class () {};
Благодарность