美文网首页
严格模式下this会指向undefined需要注意的点

严格模式下this会指向undefined需要注意的点

作者: 小龙虾Julian | 来源:发表于2020-04-20 18:32 被阅读0次
    function foo() {
        "use strict";  
        console.log( this.a );      //调用this.a的函数体是严格模式
    }
    var a = 2;
    foo();      // 8z5toyO:13 Uncaught TypeError: Cannot read property 'a' of undefined
    
    function foo() {
        console.log( this.a );       //调用this.a的函数体是非严格模式
    }
    var a = 2;
    (function(){
        "use strict";
        foo();      // 2  调用foo()的位置是严格模式
    })();
    

    解析:
    (1)第一段代码,在foo()函数体内采用严格模式并使用了this.a,this会指向undefined;第二段代码foo()在严格模式下调用,this不会指向undefined
    (2)决定 this 绑定对象的并不是调用位置是否处于严格模式,而是函数体是否处于严格模式。如果函数体处于严格模式,this 会被绑定到 undefined,否则this 会被绑定到全局对象

    相关文章

      网友评论

          本文标题:严格模式下this会指向undefined需要注意的点

          本文链接:https://www.haomeiwen.com/subject/qrljihtx.html