这个函数输出的this为什么会window呢?

<script>
  var a = {
    name: 123,
    abc: function () {
      function b() {
        console.log(this)
      }
      b()
    }
  }
  a.abc()
script>

为什么输出的this是window呢?

以下是我个人理解不一定对,权当抛砖引玉

this指向函数的调用者,而b函数是个闭包函数不属于任何对象所以指向window

这里面是写了一个闭包?
闭包的this指向window对象(因为匿名函数的执行具有全局性,所以其this对象指向window);

这个没啥可讲的,this本来就是关键字,指的是程序本身,在页端就是指window