在javascript中分配值而不是引用[重复]

Posted

技术标签:

【中文标题】在javascript中分配值而不是引用[重复]【英文标题】:Assign value not reference in javascript [duplicate] 【发布时间】: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 问题:***.com/questions/12690107/… 【参考方案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/…

以上是关于在javascript中分配值而不是引用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 JME 中拆分文本并在数组中分配值

如何在堆中分配值类型数组?

使用 OpenCV 在 Mat 中分配

JavaScript:闭包是不是可以通过值而不是像 PHP 中的引用来访问封闭范围内的变量?

变量未从函数中分配值

在自定义单元格中的标签中分配值时出现异常