每日一题(四五)var temp = { x:40 foo:function(){ var x = 10console.log(this.x) } }(temp.foo,temp.foo)()

写出打印结果:

var x = 20;
var temp = {
    x:40,    
    foo:function(){
        var x = 10;
        console.log(this.x);
    }
};
(temp.foo,temp.foo)();
扫描二维码关注公众号,回复: 11620346 查看本文章

答案:

20

解析:逗号操作符,逗号操作符会从左到右计算它的操作数,返回最后一个操作数的值。所以(temp.foo,temp.foo)();等价于 var fun = temp.foo; fun(); fun 调用的时候 this 指向 window ,所以返回20。

猜你喜欢

转载自blog.csdn.net/MFWSCQ/article/details/106289025