gpt4 book ai didi

javascript - 我试图更好地理解 `this` 的用法。该示例很冗长,但其目的是为了更好地理解

转载 作者:行者123 更新时间:2023-11-28 14:17:11 27 4
gpt4 key购买 nike

我正在尝试更好地理解 this 的用法。在试验这段代码时,我发现我可以访问 arr 中的项目。通过使用类似console.log(this.arr[4])的东西,但前提是 arr使用 var 声明。如果我声明arr使用letconst ,我收到一个类型错误。

首先,我确实知道这很冗长。就像我说的,我只是在尝试更好地理解,并遇到了这个激起我好奇心的问题。

const arr = [
1,
false,
{
name: 'John',
address: '123 Peachtree Drive'
},
function(name = 'new user') {
const greeting = 'Hello there, '
console.log(greeting + name)
},
'foo',
]

console.log(this.arr[4])

同样,如果我简单地声明 arr使用var而不是let我可以很好地记录它。

最佳答案

在浏览器中,顶级 thiswindow,顶级 var 声明还使变量可以作为 的属性进行访问>window,而 letconst 则不然。引用arr的正确方法很简单

console.log(arr[4])

我不鼓励您使用顶级 this 来访问 var 声明,因为依赖于 var 行为的代码是显然令人困惑,因为这个案例就是一个完美的例子。

关于javascript - 我试图更好地理解 `this` 的用法。该示例很冗长,但其目的是为了更好地理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56908194/

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