AngularJS学习之angular.extend用法实例
来源:互联网 发布:形容辣妈的网络语 编辑:程序博客网 时间:2024/05/07 14:24
angular.extend:依次将第二个参数及后续的参数的第一层属性(不管是简单属性还是对象)拷贝赋给第一个参数的第一层属性,即如果是对象,则是引用的是同一个对象,并返回第一个参数对象。实例一:var r = angular.extend(b, a);将对象a的第一层属性(不管是简单属性还是对象)拷贝赋给对象b的第一层属性,即如果是对象,则是引用的是同一个对象,并返回对象bvar 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));运行结果: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的第一层属性,即如果是对象,则是引用的是同一个对象,并返回对象bvar 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));运行结果: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源码如下:/** * @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; }
3 0
- AngularJS学习之angular.extend用法实例
- angular中copy和extend用法实例
- AngularJS学习笔记--使用angular.extend()实现工厂模式
- AngularJS学习之三:学习Angular
- Angular学习(二)之AngularJS 表达式
- Angular学习(四)之AngularJS 控制器
- AngularJS学习 之 过滤器实例
- AngularJS学习:Angular的模块
- Angular.js学习之二表单应用实例
- angular学习之四实例:点击收缩展开下拉
- angular学习之五实例:实现图片懒加载
- AngularJs学习笔记--Understanding Angular Templates
- 【angular】学习AngularJS 笔记(慕课网)【01】
- AngularJS学习:构建小型angular项目
- AngularJS入门之Angular内置指令
- angularjs之directive实例
- angular.extend方法
- angular.extend方法
- yii-debug-toolbar安装配置方法
- Sql Server 日志清理 (数据库压缩方法)
- 创建分布式连接
- day08_Python3的普通方法和静态方法
- D3.js学习总结
- AngularJS学习之angular.extend用法实例
- Kaptcha参数介绍
- ultraEdit格式化代码
- ajax同步开发——json+对应的处理方式直接贴上被我滥用的代码标本吧:
- Ural 1635. Mnemonics and Palindromes
- SubmitOncePage:解决刷新页面造成的数据重复提交问题
- 应用首次启动引入导图
- 十一种通用滤波算法(转)
- iOS 获取当前网络状态(转载)