我一直假设 Javascript 中有原始类型和引用类型。在日常的基础上,我从来没有对我产生过这种影响,但我刚刚开始使用更多的 JS,并想更新我的“想法”。换句话说,我会下注 20 美元,以下将返回 68
var my_obj = {};
var tmp_obj = {};
tmp_obj.my_int = 38;
my_obj.tmp_val = tmp_obj.my_int;
tmp_obj.my_int = 68;
alert('68 means reference, 38 means primitve: ' + my_obj.tmp_val);
但它返回 38。
即使数字类型的所有实例都存在于引用类型的上下文中,它们是否都是原始类型?如果是的话,我真的很惊讶并发现这种奇怪的行为(并且会损失 20 美元)。还是我的例子没有展示我的想法?
提前谢谢
更新#1
哇,谢谢所有的答案。这是一个微小的变化,对我理解有很大帮助:
var my_obj={};
var tmp_obj={};
var my_obj_2=tmp_obj;
tmp_obj.my_int=38;
my_obj.tmp_val=tmp_obj.my_int;
tmp_obj.my_int=68
alert('68 means reference, 38 means primitve: ' + my_obj.tmp_val); // 38
alert('68 means reference, 38 means primitve: ' + my_obj_2.my_int); // 68
my_obj_2.my_int=78;
alert(tmp_obj.my_int); // tmp_obj is now 78 ie two way