angular.js 的angular.copy 、 angular.extend 、 angular.merge
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="js/angular.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
//angular.copy is deep copy
var o1 = {
name: 'xudongyang',
age: 26,
skill:{}
}
var o2 = angular.copy(o1);
console.log(o2);
console.log(o1 == o2); //extend is shallow copy of the properties of the source objects from right to left
var src1 = {
name: 'xudongyang',
age: 20
}
var src2 = {
age: 10,
skill: {}
}
var dst = {},
dst2 = angular.extend(dst , src2 , src1)
console.log(dst2.skill == dst.skill);
src2.skill.eat = "kaorou";
console.log(dst2.skill);
console.log(dst.skill); //angular.merge is deep copy
var m1 = {name:'xudongyang' , age:29},
m2 = {age:10 , skill:{}}
dstm = {};
dstm2 = angular.merge(dstm , m2 , m1);
console.log(dstm2);
console.log(m2.skill == dstm2.skill); //angular.extend vs angular.merge
var s1 = {skill:{name:'java' , experience: 20, certified: true}},
s2 = {skill:{name:'js' , experience: 10}},
dst = {},
dst2 = angular.extend(dst , s1 , s2);
console.log(dst); //angular.extend vs angular.merge
var s1 = {skill:{name:'java' , experience: 20, certified: true}},
s2 = {skill:{name:'js' , experience: 10}},
dst = {},
dst2 = angular.merge(dst , s1 , s2);
console.log(dst);
//浅克隆只克隆一层,深克隆一直复制到最底层
</script>
</body>
</html>
angular.js 的angular.copy 、 angular.extend 、 angular.merge的更多相关文章
- 【Angular JS】正确调用JQuery与Angular JS脚本 - 修复Warning: Tired to load angular more than once
自己正在做一个小网站,使用Angular JS + Express JS + Mongo DB,在开发过程中,遇到一些问题,所以整理出来.希望对大家都有帮助. 这是今天解决的一个问题,Angular ...
- Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)
刚学没多久,作了一个小项目APP,微信企业号开发与微信服务号的开发,使用的是AngularJS开发,目前项目1.0版本已经完结,但是项目纯粹为了赶工,并没有发挥AngularJS的最大作用,这几天项目 ...
- Angular JS 基础应用--第一篇
前 言 Android应用开发中,有一些功能虽然能够使用原生JS来实现,但是会比较的复杂,因此一些相应的框架应运而生了.框架相对于原生JS而言,从主观上来说,最大的改变就是代码 ...
- angular.js 中的作用域 数据模型 控制器
1.angular.js 作为后起之秀的前端mvc框架,他于传统的前端框架都不同,我们再也不需要在html中嵌入脚本来操作对象了.它抽象出了数据模型,控制器及视图. 成功解耦了应用逻辑,数据模型,视图 ...
- angular js 自定义添加依赖
代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- Angular.js 入门(一)
最近在学习angular.js,为此方便加深对angular.js前端框架的理解,因此写下这篇angular.js入门 首先介绍下什么是angular.js? AngularJS 是一个 JavaSc ...
- Angular JS - 7 - Angular JS 常用指令2
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- [Angular JS教程] HeroService: getHeroes failed: undefined 问题解决方法
最近在学习入门Angular JS,学习资源是https://angular.cn/tutorial, 在学习到 "https://angular.cn/tutorial/toh-pt6模拟 ...
- (网页)Angular.js 中 copy 赋值与 = 赋值 区别
转自st.gg Angular.js 中 copy 赋值与 = 赋值 区别 为什么用 $scope.user = $scope.master; $scope.master 会跟着 $scope.use ...
- Angular.js表单以及与Bootatrap的使用
首先从angular.js的目录开始,如下图,知道了我们要学什么,然后再开始有目的的学习与对比. 1.从表达式开始: ng-app指令初始化一个 AngularJS 应用程序. ng-init指令初始 ...
随机推荐
- DuiLib——xml配置项
DUILibxml配置项 根节点 子类 属性 类型 Window |--------Image 图片信息 | o------name string | o------restype string | ...
- mysql学习之-逻辑架构
mysql逻辑架构图: 第一层,服务层(为客户端服务):为请求做连接处理,授权认证,安全等. 1. 每个连接的查询都在一个进程中的线程完成. 2. 服务器负责缓存线程,所以服务层不需要为每个连接新 ...
- ExtJs学习笔记之FormPanel组件
FormPanel组件 FormPanel 为 form 表单提供了一个标准的容器. 本质上还是一个标准的 Ext.panel.Panel, 只是自动创建了一个 BasicForm 来管理所有添加到 ...
- jQuery Mobile_表单元素
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- java 实现mysql数据库导出
package com.zbb.util; import java.io.BufferedReader;import java.io.File;import java.io.FileInputStre ...
- Centos Mysql 升级
如何升级CentOS 6.5下的MySQL CentOS 6.5自带安装了MySQL 5.1,但5.1有诸多限制,而实际开发中,我们也已经使用MySQL 5.6,这导致部分脚本在MySQL 5.1中执 ...
- Android 使用AIDL调用外部服务
好处:多个应用程序之间建立共同的服务机制,通过AIDL在不同应用程序之间达到数据的共享和数据相互操作, 本文包括: 1 .创建AIDL 服务端.2 .创建AIDL 客户端. 3.客户端调用服务端提供的 ...
- [tomcat] tomcat+nginx 负载均衡配置
首先下载,安装tomcat. 修改tomcat端口,修改server.xml: 1.修改tomcat端口(默认8080) <Connector port="8383" pro ...
- MySQL数据库表中有usage字段名后的后果
一个很奇怪的42000的错误,折腾了我一晚上.... 我的系统是Spring + SpringMVC + MyBatis结构, 数据库的mapper以及model等文件都是用MyBatisGenera ...
- VBA 打开一个string指定的文件
Open csvFileName For Input As #1 Dim lineChanger as String lineChanger = Chr(13) fileData = Split(St ...