Javascript在函数中使用此关键字

Javascript在函数中使用此关键字,javascript,function,object,internals,ecma,Javascript,Function,Object,Internals,Ecma,我试图理解Javascript的内部结构。我对这个关键字有一些误解。 Everywhere声明这个关键字是对调用函数的对象的引用 但据我所知,函数也是一个对象。 所以考虑这个例子 var car = { brand: "Nissan", getBrand: function(){ var closure = function(){ console.log(this.brand); console.log(this); }; return c

我试图理解
Javascript
的内部结构。我对这个关键字有一些误解。 Everywhere声明
这个
关键字是对调用函数的对象的引用

但据我所知,函数也是一个对象。
所以考虑这个例子

var car = {
  brand: "Nissan",
  getBrand: function(){
    var closure = function(){
      console.log(this.brand);
      console.log(this);
    };
    return closure();
  }
};

car.getBrand();  
为什么
这个
引用在
闭包
中指向
全局
对象而不是
getBrand
包装函数?同样,javascript中的一切都是对象,所以我无法理解这种行为

请从内部的角度解释这一点

谢谢

,因为的值是由调用
函数的方式决定的。
闭包
在调用时不引用
上下文
,全局上下文是
窗口
(在浏览器中)

用于在调用函数时指定
上下文

var-car={
品牌:“日产”,
getBrand:function(){
var闭包=函数(){
console.log(this.brand);
console.log(this);
};
返回闭包。调用(this);
}
};

car.getBrand()我认为它更接近于: