Angular Extends and Copy Example
Shows what extend / copy does within angular from an object reference frame
JavaScript
var extendee = {
'foo': 9,
'bar': 'test'
};
var extendWith = {
'another': 'long test',
'foo': 5
};
var arrOrg = ['test', 'this', 'array'],
arrCopy = ['replace', 'array', 'without', 'dereference'];
var extendCopy = angular.copy( extendee );
console.log("First Copy and comparison: ", extendCopy, extendee === extendCopy );
var testArr = angular.copy( arrCopy, arrOrg );
console.log("Second Copy and comparison: ", arrOrg, arrOrg === testArr );
var eTwo = angular.copy( extendee );
var extendDeep = {
'foo': 15,
'bar': {
'barOne': 'here',
'barTwo': 'there'
}
};
var eThree = {
'foo': {
'fooOne': new Date(),
'fooTwo': 'that',
},
'bar': {
'barOne': 'here',
'barTwo': 'there'
}
};
var eDeepTwo = {
'foo': {
'fooOne': new Date(),
'fooTwo': 'that',
'fooThree': 'deeper'
},
'bar': {
'barOne': 5,
'barTwo': 10
},
'newVar': {
'var1': 3,
'var2': 7
}
};
var extended = angular.extend( extendee, extendWith );
console.log("First Extend and test for comparison: ", extended, extended === extendee );
var eTwoExtended = angular.extend( eTwo, extendDeep);
console.log("Second Extend: ", eTwoExtended );
angular.extend( eThree, eDeepTwo );
console.log("Third Extend and compare inner obj: ",
eThree,
eThree['bar'] === eDeepTwo['bar'],
eThree['newVar'] === eDeepTwo['newVar'] );