Upvoted @ maerics (хороший) ответ, но хочу указать на то, что может быть неочевидным.Внутри функции (конструктора) this
относится к создаваемому новому экземпляру.Таким образом, каждый раз, когда вызывается new ClassA
или new ClassB
, создается новый экземпляр, а this.a
или this.b
ссылается на новую функцию, назначенную свойству вновь созданного объекта.
Итак,Глядя на ваш код, вы можете задать себе простой вопрос: «Сколько новых экземпляров каждого типа создается?»
Я вижу только одно вхождение new ClassA()
, что означает просто one экземпляр ClassA
создан, следовательно, this.a
назначена только одна функция.Но я вижу два вхождения new ClassB()
, поэтому две новые функции создаются, по одной для каждого экземпляра.