Функции, которые вы определяете как свойство внутри конструктора, будут создаваться для каждого экземпляра. Функции, которые вы определяете за пределами конструктора, будут доступны в этом прототипе. Таким образом, имя functon будет создано только один раз.
Скажи, что это твой класс
class Test {
constructor(prop1, prop2) {
this.prop1 = prop1;
this.prop2 = prop2;
this.func1 = function() {};
}
func2() {}
}
const test = new Test ('one', 'two');
Если вы включите devtools, вы увидите, что func1 доступен для каждого экземпляра, но func2 доступен для прототипа.
Test {prop1: "one", prop2: "two", func1: ƒ}
func1: ƒ ()
prop1: "one"
prop2: "two"
__proto__:
constructor: class Test
func2: ƒ func2()