js中this作用域的问题

 function Box(){
    function Desk(){
        this.name = 'ggg';
    }
    Desk();

}
var b = new Box();
alert(b.name);
alert(this.name);

这个里边的执行完之后b.name是undefined
而window.name变成了ggg,为什么不是b对象改变了而是改变了window对象的

var myvar = '我是win的变量';
function winfun(){
alert(this);
alert(this.myvar);
}

alert('运行window的winFun方法...开始');
winfun();//相当于 window.winfun
alert('运行window的winFun方法...结束');

var ob......
答案就在这里:js的this作用域问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

http://www.cnblogs.com/longze/p/3542582.html


    function Box() {
        var me = this;
        function Desk() {
            me.name = 'ggg';
        }
        Desk();//执行Desk时,Disk函数体内的this==window,并不是Box实例

    }
    var b = new Box();
    alert(b.name);
    alert(this.name);