2 lihaoef lihaoef 于 2016.05.06 21:38 提问

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对象的

3个回答

CSDNXIAOS
CSDNXIAOS   2016.05.06 21:42

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,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

devmiao
devmiao   Ds   Rxr 2016.05.06 23:55
showbo
showbo   Ds   Rxr 2016.05.07 13:30

    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);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!