码迷,mamicode.com
首页 > 其他好文 > 详细

angular.extend vs angular.copy

时间:2016-08-19 18:45:33      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

1、angular.copy

 angular.copy(source, [destination]);  // source: copy的对象. 可以使任意类型, 包括null和undefined.    destination:接收的对象   返回复制或更新后的对象

如果省略了destination,一个新的对象或数组将会被创建出来;
如果提供了destination,则source对象中的所有元素和属性都会被复制到destination中;
如果source不是对象或数组(例如是null或undefined), 则返回source;
如果source和destination类型不一致,则会抛出异常。
 
angular.copy后,改变source不会影响destination,改变destination 不会改变source
var source=[1,‘source‘,{id:1,source:‘hello‘}];
var des=angular.copy(source);
source[0]=9;
source[2].source=‘change‘;
console.log(des);  //输出des不会变化
var source=[1,‘source‘,{id:1,source:‘hello‘}];
var des=angular.copy(source);
des[0]=9;
des[2].source="change";
console.log(source); //输出source不变

 

 2、angular.extend

angular.extend(destination, source);

 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制.

 如果复制的是个基本数值,则改变source不会影响des,改变des不会影响source

var source=[1,‘source‘,{id:1,source:‘hellow‘}];
var des=angular.extend(source);
source[0]=9;
source[2].source=‘change‘;
console.log(des);//des改变为和source一致
var source=[1,‘source‘,{id:1,source:‘hello‘}];
var des=angular.extend(source);
des[0]=9;
des[2].source="change";
console.log(source); // source改变

 

angular.extend vs angular.copy

标签:

原文地址:http://www.cnblogs.com/YangqinCao/p/5788572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!