gpt4 book ai didi

javascript - 为什么这个 Javascript 示例复制变量值而不是通过引用传递?

转载 作者:行者123 更新时间:2023-11-30 09:06:56 26 4
gpt4 key购买 nike

Javascript The Good Parts 中,它指出:

alt text

所以我希望下面的代码示例输出 1001,因为“对象永远不会被复制,而是通过引用传递”,那么它为什么输出 0000

var page_item = {
id_code : 'welcome',
title : 'Welcome',
access_groups : {
developer : '0010',
administrator : '0100'
}
};
page_item.access_groups.member = '0000';
var member = page_item.access_groups.member;
member = '1001';

$('p#test').html(page_item.access_groups.member); //should be "1001" but is "0000"

添加:

@Gareth @David,谢谢,这就是我试图在此示例中展示的内容,有效:

var page_item = {
id_code : 'welcome',
title : 'Welcome',
access_groups : {
developer : '0010',
administrator : '0100'
}
};
var page_item2 = page_item;
page_item2.access_groups.developer = '1001';

$('p#test').html(page_item.access_groups.developer); //is '1001'

最佳答案

不要在 C++ 上下文中考虑按引用传递,因为它不一样。

var member = page_item.access_groups.member // Sets member to this value
member = '1001'; // Now sets it to another value

如果字符串上有一个方法改变了它们,那么这个:

member.removeLastLetter();

会改变page_item.access_groups.member。但是,使用 = 您正在更改变量的引用,而不是它之前引用的对象

关于javascript - 为什么这个 Javascript 示例复制变量值而不是通过引用传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440872/

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