前端之家收集整理的这篇文章主要介绍了
AngularJS学习之angular.extend用法实例,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
angular.extend:依次将第二个参数及后续的参数的第一层属性(不管是简单属性还是对象)拷贝赋给第一个参数的第一层属性,即如果是对象,则是引用的是同一个对象,并返回第一个参数对象。
实例一:var r = extend(b,a);将对象a的第一层属性(不管是简单属性还是对象)拷贝赋给对象b的第一层属性,即如果是对象,则是引用的是同一个对象,并返回对象b
var a = {
name : 'bijian' address : 'shenzhen'@H_404_42@family : {
num : 6 amount : '80W'
}
};
var b = {}
;
console.log('a:' + JSON.stringify(a))'b:' + stringify(b))'r:' + stringify(r))
b.address = 'hanzhou';
b.family.amount = '180W'
运行结果:
a:{"name":"bijian""address":"shenzhen""family":{"num":"amount":"80W"}}
b:{"80W"}}
r:{"80W"}}
a:{"180W"}}
b:{"hanzhou""180W"}}
r:{"180W"}}
实例二:z);相继将对象a、z的第一层属性(不管是简单属性还是对象)拷贝赋给对象b的第一层属性,即如果是对象,则是引用的是同一个对象,并返回对象b
var a = { var z = {
'150W'@H_404_42@mainSource : '经营公司'
;
运行结果:
a:{"150W""mainSource":""}}
r:{"}}
a:{"80W"}}
b:{"180W""}}
r:{"}}
再多的实例也不如源代码来的简单、直接和准确,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. {...Object} src Source object(s). @returns {Object} Reference to `dst`. */ function extend(dst) {
var h = dst.$$hashKey;
forEach(argumentsfunction(obj){
if (obj !== dst) {
forEach(objfunction(value; }) }
}) setHashKey(dst return dst;
}