一、angular.copy
angular.copy用于深复制
angular.copy(src,[dst])
src:源对象
dst:目标对象,复制的对象
js中 ‘= ’操作符复制的是指针,所以前后两个变量指向的还是内存中的同一个对象,所以在其中一个变量上操作该对象时,对另外一个变量也会生效。而angular.copy方法是深复制,会在内存中再生成一个对象,两个变量彼此独立,互不影响。
接收一个必须参数src,一个可选参数dst。如果dst没有提供,就会创建对象或者数组的复制份。如果dst存在,删除原有的元素,然后从源对象中复制所有的数据。返回复制的对象或数组。
var src = {"username" : "angularjs"};
var dst = {};
angular.copy(src, dst);
console.log("dst:", dst);
运行结果
dst: {"username" : "angularjs"}
二、angular.extend
angular.extend用于拓展
angular.extend(dst,src)
src:源对象
dst:被拓展的对象
用src拓展dst,返回拓展后的对象(后覆盖前)。
var src = {"username" : "angularjs"};
var dst = {"page" : "one"};
angular.extend(dst, src);
console.log("dst:", dst);
运行结果
dst: {"page" : "one", "username" : "angularjs"}