如果我有这些对象:
var first = {arr: ["foo"]};
var second = {arr: ["bar"]};
然后做
angular.extend(first, second);
这将是状态:
first.arr[0] //"bar"
first.arr === second.arr;//true
我想要第一部分,但我不希望数组是相同的引用。
当我尝试时
angular.merge(first,second);
然后 first.arr
没有任何反应
first.arr[0]; //"foo
使用 first
的属性(包括数组)扩展 first
的正确方法是什么?
最佳答案
您可以将两个对象合并为新对象:
angular.extend({}, first, second);
那么它应该是你想要的:
var first = {arr: ["foo"]};
var second = {arr: ["bar"]};
var result = angular.extend({}, first, second);
console.log(result.arr[0]); // bar
console.log(first.arr === second.arr); // false
关于javascript - 具有数组属性的 angular.extend/merge 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32734192/