Вы должны знать, что в JavaScript this
относится к контексту вызова или месту, где был сделан вызов функции.
Когда вы делаете
function A() {
return this;
}
, тогда
console.log( A() );
Вызывающий контекст, по очевидным причинам, является контекстом window
и, следовательно, this
относится кwindow
.То же самое и в случае B()
.
Однако, когда вы делаете new A()
, вы инициализируете новый экземпляр класса и, напротив, новую ячейку памяти.Поскольку каждая новая инициализация ссылается на новую ячейку памяти, они никогда не равняются true
.