gpt4 book ai didi

javascript ,在名称也是 attrName 的函数中使用 this.attrName

转载 作者:行者123 更新时间:2023-11-30 12:43:56 25 4
gpt4 key购买 nike

我发现了一些奇怪的东西..

function Man(){
this.Man = "Peter";
}

在我调用它之后。 (不要将其用作构造函数)

Man()

我想会有一个结果

alert(Man.Man)//-->Peter

但是..我错了,实际上结果是:

alert(Man.Man)//-->undefined
alert(Man)//-->Peter

那真是令人困惑,这是怎么发生的??

最佳答案

我会向您解释那里发生的事情。

1

function Man(){
this.Man = "Peter";
}

Man()函数中的thiswindow

2

Man();

您正在调用函数。它将全局变量 Man 的值设置为 "Peter"

请注意 this.Man = "Peter" 等于 window.Man = "Peter" 因为 this 指的是 窗口

3

alert(Man.Man)

第 2 步中的函数调用 Man(); 使 Man 从函数变为字符串变量。现在 Man 是一个值为字符串的变量,它不包含属性 Man,因此它是 undefined

4

alert(Man)

现在,您实际上是在警告在 Man() 调用中创建的全局变量,它被设置为 "Peter"

的值

关于javascript ,在名称也是 attrName 的函数中使用 this.attrName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23307325/

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