При использовании ключевого слова new
this
- это объект экземпляра, который вы создаете.
var foo = new Bar();
т.е. экземпляр Bar
присваивается foo
Если вы этого не сделаете, this
- это объект, на котором живет метод, который вы вызываете.
var baz = foo.thing();
var boz = thing();
т.е. foo
в первом примере и window
во втором (window
является объектом по умолчанию).
Вы также можете fritz с ним, используя apply
var baz = foo.thing.apply(bar);
Здесь this
(все еще внутри метода thing
) равно bar
)