我正在学习 JavaScript。我对以下示例的工作方式感到困惑?我创建了一个对象 person
并将其值分配给 Person2。
var person = "hello";
var Person2 = person;
person = "hey";
console.log(Person2); // prints hello
console.log(person); //prints hey
为什么 Person2
的值没有改变,即使 person
已经被分配了一个新值?是因为我正在传递一个引用吗?我不清楚它的实现情况。我缺少什么概念?
最佳答案
您正在处理 JavaScript 中的 primitive
- 字符串是原始类型( bool 值、数字、未定义和 null 也是如此)。基元是按值分配的,而不是按引用分配的。
数组和对象通过引用赋值。
var person = ['test'];
var person2 = person;
person[0] = 'hi';
console.log(person); //['hi'];
console.log(person2); //['hi'];
关于javascript - 为什么第二个对象的值没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364717/