JavaScript 按引用对象
JavaScript By Reference Object
我有类似于
的代码
emp1 = emp;
emp=emp2;
如果对象是引用那么为什么 emp1 不等于 emp2?
为什么 emp1 打印 "shilpa" 而不是 "manish" .
var emp =
{
name : "manish",
number : 10
}
var emp1 = emp;
var emp2 =
{
name : "shilpa",
number : 20
}
emp = emp2;
console.log(emp);
console.log(emp1);
console.log(emp2);
事情就是这样。
您创建了一个变量 emp
,它指向内存中存储您定义的对象值的位置。
然后你创建一个变量emp1
,它指向对象值在内存中的相同位置。
然后定义一个新变量emp2
,它指向内存中存储您定义的对象值的位置。
然后你设置 emp
指向 emp2
对象值在内存中的 nrw 位置。
但是emp1
仍然指向第一个location/object。
我认为您对 methods/functions 中的变量声明和传递参数感到困惑(通过引用或通过值)
我有类似于
的代码emp1 = emp;
emp=emp2;
如果对象是引用那么为什么 emp1 不等于 emp2?
为什么 emp1 打印 "shilpa" 而不是 "manish" .
var emp =
{
name : "manish",
number : 10
}
var emp1 = emp;
var emp2 =
{
name : "shilpa",
number : 20
}
emp = emp2;
console.log(emp);
console.log(emp1);
console.log(emp2);
事情就是这样。
您创建了一个变量 emp
,它指向内存中存储您定义的对象值的位置。
然后你创建一个变量emp1
,它指向对象值在内存中的相同位置。
然后定义一个新变量emp2
,它指向内存中存储您定义的对象值的位置。
然后你设置 emp
指向 emp2
对象值在内存中的 nrw 位置。
但是emp1
仍然指向第一个location/object。
我认为您对 methods/functions 中的变量声明和传递参数感到困惑(通过引用或通过值)