如何在Javascript中将对象作为参数传递给函数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (236)

在C / C ++中,我知道我们有指向对象和数组的指针,因此可以将它们解析为函数参数,而无需克隆所述对象和数组。在Javascript中没有这样的选项,所以我们只使用对象变量。

这是好习惯吗?

function setWhite(obj){
  obj.color = "white";
}

var shirt = {
  color: "red",
  size: "L"
}

setWhite(shirt);

console.log(shirt);
提问于
用户回答回答于

是。在javascript中,对象通过引用传递。因此,如果更改函数中对象的值,则会将其更改回函数外部。

但是如果你做了这样的事情,情况并非如此:

function setWhite(obj){
  obj = {
    color: "white",
    size: "M"
  }
}

var shirt = {
  color: "red",
  size: "L"
}

setWhite(shirt);

console.log(shirt); // shirt will remain red / L

扫码关注云+社区

领取腾讯云代金券