Я новичок в JS, хотя у меня есть приличный опыт работы с другими языками. Насколько я понимаю, в JS, когда в методе, this
относится к его объекту-владельцу.
var superman = {
name : 'Superman',
sayHi : function(){
alert("Hello, I'm "+this.name)
}
};
Когда я пишу,
var print = superman.sayHi()
print()
Он предупреждает, Hello, I'm Superman
как и ожидалось.
Однако, если я напишу,
var print = superman.sayHi
print()
Он предупреждает, Hello, I'm undefined
Почему это происходит? this
в superman должно относиться к объекту superman, почему var print = superman.sayHi()
и var print = superman.sayHi
производят разные результаты?