博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular.extend用法实例
阅读量:6897 次
发布时间:2019-06-27

本文共 3064 字,大约阅读时间需要 10 分钟。

 
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);//这里其实不关 a.family什么事,因为被后续的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';//这里改变不了a.familyconsole.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; }
来源: 

转载于:https://www.cnblogs.com/yu-709213564/p/6156050.html

你可能感兴趣的文章
浮点数精度
查看>>
[置顶] IT屌丝的离职申请
查看>>
IE7 float:left失效的解决方法
查看>>
WordPress 插件机制的简单用法和原理(Hook 钩子)
查看>>
dbchart
查看>>
GCC指令
查看>>
[转] Exchange Server 2013部署
查看>>
I-129表
查看>>
ImageView setImageURI图片不改变\NetWorkImageView 不显示的问题
查看>>
Flash xml 中文乱码
查看>>
BZOJ 2727 双十字(树状数组)
查看>>
8.2 C++ AMP advanced concepts
查看>>
Linux Mint 11正式版发布!
查看>>
C++开发者快速学习Objective-C语言核“.NET研究”心语法
查看>>
(总结)Nginx使用的php-fpm的两种进程管理方式及优化
查看>>
我的KT库之----数据库的操作(DbHelper)
查看>>
js Grid - 列表插件
查看>>
20个优秀的固定位置网站菜单设计案例
查看>>
php函数serialize()与unserialize()
查看>>
批处理 Telnet 星球大战 话说我也清楚这是什么东东
查看>>