参考数据类型传入Javascript中的函数

时间:2019-01-08 19:14:43

标签: javascript

我有一个关于在Javascript中传递参数的问题,因为我知道,对于原始数据类型,通过函数传递时,它们是按值复制的。

对参考数据类型有了解吗?

作为示例,请参见以下代码:

var person3 = new Object();
setName(person3);
console.log(person3)
function setName(obj){
  obj.Name = "remon"
}

对于谁说它是重复的,这不是因为我从内存的角度提出问题,而且我是学习编程的新手,而这些问题的答案对我来说是如此先进。

1 个答案:

答案 0 :(得分:0)

@MinaShaker,实验表明,它是通过引用复制的。我们会在控制台中看到{Name:'remon'}。

var person3 = new Object();
setName(person3);
console.log(person3)
function setName(obj){
  obj.Name = "remon"
}

在这里,如果我们在将对象发送到函数之前先对其进行“复制”,我们将获得{Name:'simon'}

var person3 = { Name: "simon" };
setName(Object.assign({}, person3));
console.log(person3)
function setName(obj){
  obj.Name = "remon"
}