【问题标题】:Assign value not reference in javascript [duplicate]在javascript中分配值而不是引用[重复]
【发布时间】:2017-03-01 05:21:16
【问题描述】:

我在 javascript 中分配对象时遇到了一点问题。

看看这个重现我的问题的示例代码。

var fruit = {
   name: "Apple"
};

var vegetable = fruit;
vegetable.name = "potatoe";
console.log(fruit);

它记录

Object {name: "potatoe"}

如何将值而不是对象的引用分配给另一个对象?

【问题讨论】:

  • 复制对象 - 一种简单的方法是:var vegetable = JSON.parse(JSON.stringify(fruit));
  • 如何将值而不是对象的引用分配给另一个对象?。你不能 JavaScript 不能那样工作。您唯一的选择是按照@tymeJV 的说明复制对象。
  • 检查这个 SO 问题:stackoverflow.com/questions/12690107/…

标签: javascript variable-assignment


【解决方案1】:

你可以使用Object.assign:

var fruit = {
   name: "Apple"
};

var vegetable = Object.assign({}, fruit);
vegetable.name = "potatoe";
console.log(fruit);

【讨论】:

  • 注意,这不会分配值(正如 OP 所希望的那样),而是将其复制到一个新对象中。微妙但有时很重要的区别
  • 你能解释一下这个assign电话吗?第一个参数中的空对象是什么?
  • @MubasharAbbas See here
  • Object.assign({}, obj);你可以看到更多:developer.mozilla.org/es/docs/Web/JavaScript/Referencia/…
猜你喜欢
  • 2012-06-25
  • 2013-03-15
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 2022-09-23
相关资源
最近更新 更多