有趣的this,对与编译器的一些猜想

话不多少,上马

    var a=1;    
    var obj={
        a:2,
        ga:function(){
            return this.a
        }
    }
    console.log((obj.ga=obj.ga)());//1
    console.log((obj.ga)());//2
    console.log((b=obj.ga)());//1

根据8跟10行,我只能斗胆猜测:
编译器为了省事,直接利用obj.ga得到的值进行xx.()这种函数调用,导致不管谁调用this指向都是全局的this。。。

挖个坑吧,我很想被打脸的。
完。

发表评论

电子邮件地址不会被公开。 必填项已用*标注