ООП в Javascript Помогите пожалуйста разобраться, есть ли какая-то принципиальная разница в двух следующих примерах?function A(){
this.a = 100;
this.b = 200;
}
var a = new A();
function A(){
this.a = 100;
}
A.prototype.b = 200;
var a = new A();

В разных местах встречал и тот и другой пример. Если есть разница, то в чем?

21 Авг 2019 в 07:10
171 +1
0
Ответы
1

Да, между этими двумя примерами есть принципиальная разница.

В первом примере, первая функция A определяет свойства a и b с помощью ключевого слова this. При создании нового объекта a с помощью оператора new A(), каждый новый объект будет иметь свои собственные копии этих свойств a и b.

Во втором примере, функция A сначала определяет только свойство a, а затем добавляет свойство b к прототипу функции A с помощью A.prototype.b = 200;. При создании нового объекта a с помощью оператора new A(), объект будет иметь свойство a, установленное в 100, а свойство b будет унаследовано от прототипа функции A и будет равно 200.

Таким образом, основное различие состоит в том, что в первом случае каждый объект имеет свои собственные копии свойств, а во втором случае свойство наследуется от прототипа.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир