@野兽的 ng api 学习 -- angular.copy
angular.copy
针对对象或数字创建一个深层的拷贝。
格式:angular.copy(source, [destination]);
source:被拷贝的对象
destination:接收的对象 [注意:参数类型是对象或数组]
使用代码:
var objA, objD = []; //objA:undefined objD:[]
var objB = { text: "Hello World" };
var objC = {text:"Hai",value:"Test"};
objA = angular.copy(objB); // objA:{ text:"Hello World"} objB:{ text:"Hello World"}
angular.copy(objC, objD);// objC:{text: "Hai", value: "Test"} objD:[text: "Hai", value: "Test"]
@野兽 对Angular API 逐个的自己翻译一次,然后写代码运行成功,才记录下来... @野兽知道网上也有找得到类似的翻译,不过@野兽有@野兽的高傲。不拷贝别人的成果,必须自己翻译,自己写代码,自己看源码(部分,不是全部... 之前看过jquery的,全部看完好心累的),这样才能让自己对这些方法理解的更深...
好了,扯下angular.copy吧,还是根据以上的代码来解释...
首先说下objA = angular.copy(objB),这句的意思是把objB拷贝下,然后把拷贝的内容深度赋值给A,这时候A从原来的undefined变成了Object{ text:"Hello World"} 。然而,@野兽把objA和objB用 === 对比了下,发现返回的是false,我又把objA = objB,再以 === 对比下,这时候返回的就是true。这个坑@野兽目前也不知道怎么填(恕我功力浅薄... 有大神愿意解答下么?),因为typeof下objA和objB,都是object,而且里面的属性/值都一样....
然后再说下 angular.copy(objC,objD),这是把objC拷贝给objD,然后我直接var objD,发现执行这句以后的objD还是undefined,然后@野兽就去看api,发现格式:angular.copy(source, [destination]) 里的接收对象是带[]的,然后api网站给的解释,这个参数是个对象或者数组,好吧,那么@野兽就用对象或数组试试吧...果然成功了
那么,angular.copy的解释就到这了 以上是@野兽对angular.copy的理解