gpt4 book ai didi

javascript - 为什么我不能将属性值分配给对象声明中的以下属性?

转载 作者:行者123 更新时间:2023-12-02 16:47:26 25 4
gpt4 key购买 nike

我正在学习 Javascript,但遇到了一些我不明白的事情。这是我的目标代码的一部分:

var monster =
{
...

//is the animation starting?
hiding: true,
delayDuration: Math.floor(Math.random() * 60),
currentDelay: this.delayDuration,


...
};

如果我console.log (delayDuration),我会得到一个值,但如果我console.log (currentDelay),它会显示“未定义”。

我不明白为什么currentDelay不采用delayDuration的值。有人可以解释一下吗?

编辑:@Bergi 为什么你将其标记为重复?我在其他地方找不到我的问题的答案edit2:是的,它是重复的。至少现在我知道我要问什么了。

最佳答案

在对象创建时,monster 及其任何属性均未定义。您不能使用正在构建的同一对象中的变量。

此外,Javascript 使用函数作用域,这意味着 this 的值将是 window 对象,或者将作用域限制为您正在使用的最近的实例new(或其他实例创建技术)。

关于javascript - 为什么我不能将属性值分配给对象声明中的以下属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26990534/

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