Почему значение «это» меняется.?
Я изучаю Javascript, и я столкнулся с сомнением. Почему ценностьэтот" undefined в первом примере, но печатает правильно во втором.
пример 1:
var myNamespace = {
myObject: {
sayHello: function() {
console.log( "name is " + this.myName );
},
myName: "john"
}
};
var hello = myNamespace.myObject.sayHello;
hello(); // "name is undefined"
пример 2:
var myNamespace = {
myObject: {
sayHello: function() {
console.log( "Hi! My name is " + this.myName );
},
myName: "Rebecca"
}
};
var obj = myNamespace.myObject;
obj.sayHello();//"Hi! My name is Rebecca"
Почему значение "этот" изменения в функции. Какую концепцию мне не хватает?