为啥下面的javascript代码执行后,结果是The Window,而不是My Object?代码如下

为什么下面的javascript代码执行后,结果是The Window,而不是My Object?代码如下:
var name = "The Window";   
  var object = {   
    name : "My Object",   
    getNameFunc : function(){   
      return function(){
alert(this); 
        return this.name;   
     };   
    }   
};   
alert(object.getNameFunc()());  //The Window

为什么上面的javascript代码执行后,结果是The Window,而不是My Object?
------解决思路----------------------
个人理解
var name = "The Window";
var object = {
    name : "My Object",
    getNameFunc : function()
    {
        return function()
        {
            //匿名函数,this指向window
            var name = this.name;
            return name;
        }
    },
    getNameFunc1 : function()
    {
        //this指向对象本身
        var name = this.name;
        return function()
        {
            return name;
        }
    }
};

alert(object.getNameFunc()());
alert(object.getNameFunc1()());

------解决思路----------------------
第一个this:
Window {top: Window, window: Window, location: Location, external: Object, chrome: Object…}
第二个this:
Object {name: "My Object", getNameFunc: function, getNameFunc1: function}
------解决思路----------------------
this的作用域,代表不同意思。
------解决思路----------------------
注意作用域
var name = "The Window";   
  var object = {   
    name : "My Object",   
    getNameFunc : function(){   
      return this.name;   
    }   
};   
alert(object.getNameFunc());