账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    为什么这里的this不同
    57
    0

    在撸代码的时候遇见这个问题了。各位大神请帮我看下。谢谢了。

    (function(){
        var name = 'Tom';
        console.log(this);//window--------------------------(1)
        console.log(this.name);//空-------------------------(2)
    })();
    var age = "22"
    console.log(this);//window------------------------------(3)
    console.log(this.age);//22------------------------------(4)
    

    为什么(2)这个地方会输出是空?而不是Tom
    为什么(4)这个地方会输出22?
    打印出来的this都是window。这两个this有什么不同么?
    为什么出现这个情况?
    麻烦各位大神指点下。前端小白,感激不尽。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 難以釋懷 普通会员 1楼

      在JavaScript中,this是一个重要的变量,用于表示当前作用域的上下文对象。它可以是函数对象、模块对象、类对象等。然而,如果在函数中使用箭头函数,this的指向会有所不同。

      箭头函数的this指向是其所在的作用域。在ES6中,函数默认没有this。但是,你可以通过在箭头函数的参数中使用self或者super来改变默认的this。

      例如:

      ```javascript const obj = { name: 'John', sayHello: function() { console.log(this.name); // 输出 "John" } };

      obj.sayHello(); // 输出 "John" ```

      在这个例子中,sayHello函数默认没有this,但是在调用sayHello函数时,它会通过self来获取其当前作用域的this。

      需要注意的是,箭头函数在函数外部也不能访问其内部的this,只能在函数内部访问。如果你需要在函数外部访问this,你可能需要使用一个闭包或者扩展运算符来创建一个局部的作用域。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部