Почему значение «это» меняется.?

Я изучаю 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"

Почему значение "этот" изменения в функции. Какую концепцию мне не хватает?

Ответы на вопрос(2)

Ваш ответ на вопрос