繁体   English   中英

使用array.push(val)在angularjs中推送数组中的值会创建深层副本吗?

[英]Pushing values in array in angularjs using array.push(val) creates deep copy or not?

使用array.push()在angularjs中的数组末尾添加值时,它会在数组内部创建推送值的深层副本。

不,您将向数组添加对原始对象的引用 ,而不是值或副本

var obj = { key: "value" }
var arr = [];
arr.push(obj);

obj === arr[0];
// true

不,深拷贝可以通过angular.copy完成。 例如。

var data = [{'name':'abc'}, {'name':'xyz'}];
var copiedOne = angular.copy(data);

在Javascript中,对象总是通过引用传递,除非您自己复制它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM