gpt4 book ai didi

javascript - 引用 JS 对象中的内部变量

转载 作者:行者123 更新时间:2023-12-03 02:50:24 24 4
gpt4 key购买 nike

在一个简单的 JS 对象中,如下所示:

var LeadserData = {
agent_id: 2,

object_queries: {
emails: {
url: "/manual_emails/",
method: 'GET',
send_data: {
the_id: this.agent_id
}
}
}
}

显然可以像这样简单地访问agent_id:

LeadserData.agent_id = 100;
alert(LeadserData.agent_id);

这显然返回100。但是this.agent_id的内部引用为什么不返回100。工作?

alert((LeadserData.object_queries.emails.send_data.the_id));

我原以为它也会显示为“100”,但它是未定义的。整个 fiddle 在这里:https://jsfiddle.net/h88zc5nw/1/

此行为的解释是什么,以及如何调整它以返回预期的 100 .

最佳答案

首先,您使用的是对象文字。你不能在对象文字中使用 this ,至少它不会是你想象的那样。它将是构造对象文字时可用的任何 this

其次,即使我们假设上述工作正常,数字是 native 类型,它们也不会通过引用共享。因此,即使您已将其中一个分配给另一个,更改 LeadserData.agent_id 也不会影响 LeadserData.object_queries.emails.send_data.the_id。 native 类型在分配时复制,而不是使用引用传递(就像对对象所做的那样)。

关于javascript - 引用 JS 对象中的内部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47897175/

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