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()代码>我认为它更接近于: