嘿!@野兽,你的ng api 掉了 - - angular.copy

@野兽的 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的理解

时间: 2024-10-15 00:45:15

嘿!@野兽,你的ng api 掉了 - - angular.copy的相关文章

嘿!@野兽,你的ng api 掉了 - - angular.forEach

@野兽的 ng api 学习 -- angular.forEach angular.forEach 调用迭代器函数取每一项目标的集合,它可以是一个对象或数组.迭代器函数与迭代器(value.key)一起调用,其中值是一个对象属性或数组元素的值,而数组元素是对象属性的关键或数组元素索引.为函数指定一个可选的上下文. 格式:angular.forEach(obj,iterator,[context]); obj:遍历的对象 iterator:迭代器 [content]: 对象为迭代器函数的上下文(t

嘿!@野兽,你的ng api 掉了 - - angular.uppercase和angular.lowercase

@野兽的 ng api 学习 -- angular.uppercase和angular.lowercase angular.uppercase 将指定的字符串转换成大写 格式:angular.uppercase(string); string:被转换成大写的字符串. 使用代码: var str = "ABCabc"; var upperCase = angular.uppercase(str);//ABCABC angular.lowercase 将指定的字符串转换成小写 格式:ang

嘿!@野兽,你的ng api 掉了 - - angular.identity和angular.noop

@野兽的 ng api 学习 -- angular.identity和angular.noop angular.identity 函数返回本身的第一个参数.这个函数一般用于函数风格. 格式:angular.identity() 使用代码: <script> angular.module("Demo", []) .controller("testCtrl", ["$scope", function ($scope) { var getR

嘿!@野兽,你的ng api 掉了 - - angular.element

@野兽的 ng api 学习 -- angular.element 将DOM元素或者HTML字符串一包装成一个jQuery元素. 格式:angular.element(element); element:包装成jquery对象的html字符串或者dom元素 jqLite提供的方法: addClass() after() append() attr() bind() – 不支持命名空间,选择器和事件数据 children() – 不支持选择器 clone() contents() css() da

嘿!@野兽,你的ng api 掉了 - - angular.bootstrap

@野兽的 ng api 学习 -- angular.bootstrap angular.bootstrap 使用这个功能来手动启动angular应用.基于ngScenario的端对端测试不能使用bootstrap手动启动,需要使用ngApp. Angular会检测应用在浏览器是否已启动并且只允许第一次的启动,随后的每次启动都将会导致浏览器控制台报错. 这可以防止应用出现多个Angular实例尝试在Dom上运行的一些奇异结果. 格式:angular.bootstrap(element,[nodul

android api level对应表(copy)

Platform Version API Level VERSION_CODE Notes Android 4.4 19 KITKAT Platform Highlights Android 4.3 18 JELLY_BEAN_MR2 Platform Highlights Android 4.2, 4.2.2 17 JELLY_BEAN_MR1 Platform Highlights Android 4.1, 4.1.1 16 JELLY_BEAN Platform Highlights An

API Monitor---------------Using API Monitor to crack copy protected software

For this tutorial we will be using Mirial Softphone which is a HD video conferencing application. This tutorial is for educational purposes only, so please do not use this to create or distribute a cracked copy of the software. When you first install

野兽的Angular Api 学习、翻译及理解 - - form.FormController、ngModel.NgModelController

野兽的ng api学习 -- form.FormController.ngModel.NgModelController form.FormController FormController跟踪所有他所控制的和嵌套表单以及他们的状态,就像有效/无效或者脏值/原始. 每个表单指令创建一个FormController实例. 方法: $addControl(); 给表单注册一个控制器. 使用了ngModelController的输入元素会在连接时自动执行. $removeControl(); 给表单注

@野兽的Angular Api 学习、翻译及理解 - - angular.module

@野兽的 ng api 学习 -- angular.module angular.module 创建一个全局的可用于检索和注入的Angular模块.所有Angular模块(Angular核心模块或者第三方模块)想要在应用里实现,都需要使用这个注入机制. 格式:angular.module(name,[requires],[configFn]); name :  string  创建的模块名称. [requires]: 字符串的数组  代表该模块依赖的其他模块列表,如果不依赖其他模块,则为空数组.