AngularJS 확장 사용법
angle.extend: 두 번째 매개변수의 첫 번째 수준 속성과 후속 매개변수(단순 속성이든 객체이든)를 복사하여 첫 번째 매개변수의 첫 번째 수준 속성에 할당합니다. .속성, 즉 객체인 경우 동일한 객체를 참조하고 첫 번째 매개변수 객체를 반환합니다.
예시 1: var r = angle.extend(b, a); 객체 a의 첫 번째 수준 속성(단순 속성이든 객체이든)을 복사하여 첫 번째 수준에 할당합니다. 객체 b의 level 속성, 즉 객체라면 동일한 객체를 참조하여 객체 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));
실행 결과:
텍스트 코드
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"}}
예 2: var r = 각도 .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));
를 반환합니다. 실행 결과:
텍스트 코드
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":"经营公司"}}
예제가 아무리 많아도 예제만큼 간단하고 직접적이며 정확하지는 않습니다. angle.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; }