gpt4 book ai didi

javascript - JS 中的 "this"关键字 - 我很困惑

转载 作者:行者123 更新时间:2023-11-29 10:43:00 25 4
gpt4 key购买 nike

<分区>

我对 JS 中的 this 关键字感到困惑,如下所示。为什么 this.this_ 在第 3) 行未定义?有什么简单的检查吗?在第 2 行中,this 指向 Window 对象 - 我很惊讶,但这对我来说是可以接受的 - 为什么会这样?唯一对我有用的是使用 this2_ 变量,但我认为这并不优雅。如何以良好、优雅的方式使用 this 始终有效并指向 O 对象?

var a = function(callback){
callback('test');
};
var O = function(){
this.val = 'abc';
var this2_ = this;
this.this_ = this;

this.f = function(){
console.log(this); // (1) this -> O object, that's OK
a(function(){
console.log(this); // (2) this -> Window object
console.log(this.this_); // (3) this.this_ -> undefined
console.log(this2_); // (4) this2_ -> O object
});
}
};
var o = new O();
o.f();

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com