小羊也疯狂 2018-07-09 12:19 采纳率: 100%
浏览 909
已采纳

这里的this怎么理解?

 var a=11
function test1(){
 this.a=22;
 let b=function(){
 console.log(this.a);
 };
 b();
}
var x=new test1();    

返回11 这个this为什么指向window?

  • 写回答

16条回答 默认 最新

  • 天际的海浪 2018-07-09 12:41
    关注

    除了箭头函数()=>{}外,每一个用function声明的函数在调用时都会在函数内创建自己的this。
    也就是说,function声明的函数总是有自己的this。从而遮盖外层作用域中的this。
    this一般是函数所操作的对象。
    如果函数是直接调用,如你的代码 b();就没有指定操作的对象。这样,this在"use strict";严格模式下是 undefined,非严格模式下是 window。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(15条)

报告相同问题?

悬赏问题

  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序