AngularJS extend用法详解及实例代码


Posted in Javascript onNovember 15, 2016

AngularJS extend用法

   angular.extend:依次将第二个参数及后续的参数的第一层属性(不管是简单属性还是对象)拷贝赋给第一个参数的第一层属性,即如果是对象,则是引用的是同一个对象,并返回第一个参数对象。

        实例一:var r = angular.extend(b, a);将对象a的第一层属性(不管是简单属性还是对象)拷贝赋给对象b的第一层属性,即如果是对象,则是引用的是同一个对象,并返回对象b

Js代码 

var a = { 
  name : 'bijian', 
  address : 'shenzhen', 
  family : { 
    num : 6, 
    amount : '80W' 
  } 
}; 
var b = {}; 
var r = angular.extend(b, a); 
console.log('a:' + JSON.stringify(a)); 
console.log('b:' + JSON.stringify(b)); 
console.log('r:' + JSON.stringify(r)); 
 
b.address = 'hanzhou'; 
b.family.amount = '180W'; 
console.log('a:' + JSON.stringify(a)); 
console.log('b:' + JSON.stringify(b)); 
console.log('r:' + JSON.stringify(r));

运行结果:

Text代码 

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}} 
b:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}} 
r:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}} 
a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"180W"}} 
b:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}} 
r:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}}

         实例二:var r = angular.extend(b, a, z);相继将对象a、z的第一层属性(不管是简单属性还是对象)拷贝赋给对象b的第一层属性,即如果是对象,则是引用的是同一个对象,并返回对象b

Js代码 

var a = { 
  name : 'bijian', 
  address : 'shenzhen', 
  family : { 
    num : 6, 
    amount : '80W' 
  } 
}; 
var z = { 
  family : { 
    amount : '150W', 
    mainSource : '经营公司' 
  } 
}; 
var b = {}; 
var r = angular.extend(b, a, z); 
console.log('a:' + JSON.stringify(a)); 
console.log('b:' + JSON.stringify(b)); 
console.log('r:' + JSON.stringify(r)); 
 
b.address = 'hanzhou'; 
b.family.amount = '180W'; 
console.log('a:' + JSON.stringify(a)); 
console.log('b:' + JSON.stringify(b)); 
console.log('r:' + JSON.stringify(r));

运行结果:

Text代码 

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}} 
b:{"name":"bijian","address":"shenzhen","family":{"amount":"150W","mainSource":"经营公司"}} 
r:{"name":"bijian","address":"shenzhen","family":{"amount":"150W","mainSource":"经营公司"}} 
a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}} 
b:{"name":"bijian","address":"hanzhou","family":{"amount":"180W","mainSource":"经营公司"}} 
r:{"name":"bijian","address":"hanzhou","family":{"amount":"180W","mainSource":"经营公司"}}

        再多的实例也不如源代码来的简单、直接和准确,angular.extend源码如下:

Js代码 

/** 
 * @ngdoc function 
 * @name angular.extend 
 * @function 
 * 
 * @description 
 * Extends the destination object `dst` by copying all of the properties from the `src` object(s) 
 * to `dst`. You can specify multiple `src` objects. 
 * 
 * @param {Object} dst Destination object. 
 * @param {...Object} src Source object(s). 
 * @returns {Object} Reference to `dst`. 
 */ 
function extend(dst) { 
 var h = dst.$$hashKey; 
 forEach(arguments, function(obj){ 
  if (obj !== dst) { 
   forEach(obj, function(value, key){ 
    dst[key] = value; 
   }); 
  } 
 }); 
 
 setHashKey(dst,h); 
 return dst; 
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jQuery的三种$()
Dec 30 Javascript
javascript 的Document属性和方法集合
Jan 25 Javascript
js中function()使用方法
Dec 24 Javascript
基于jQuery实现下拉框
Nov 24 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
Treegrid的动态加载实例代码
Apr 29 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
Aug 29 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
Dec 26 Javascript
Vue.js移动端左滑删除组件的实现代码
Sep 08 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
vue实现div单选多选功能
Jul 16 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 #Javascript
jQuery checkbox选中问题之prop与attr注意点分析
Nov 15 #Javascript
javascript实现消灭星星小游戏简单版
Nov 15 #Javascript
js滚轮事件兼容性问题需要注意哪些
Nov 15 #Javascript
禁用backspace网页回退功能的实现代码
Nov 15 #Javascript
sea.js常用的api简易文档
Nov 15 #Javascript
js实现倒计时及时间对象
Nov 15 #Javascript
You might like
php数据库抽象层 PDO
2011/05/07 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
symfony表单与页面实现技巧
2015/01/26 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
JS打印组合功能
2016/08/04 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
在Python中使用判断语句和循环的教程
2015/04/25 Python
python获取目录下所有文件的方法
2015/06/01 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
Python利用IPython提高开发效率
2016/08/10 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
协会周年庆活动方案
2014/08/26 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
质量承诺书格式范文
2015/04/28 职场文书
放假通知怎么写
2015/08/18 职场文书
情感电台广播稿
2015/08/18 职场文书
学习党章心得体会2016
2016/01/15 职场文书