angular에서copy와extend용법 실례

11036 단어 Angular

angular.copy () 깊이 복사


정의: 대상이나 그룹을 복사합니다.destination을 생략하면 새로운 대상이나 그룹이 생성됩니다.2. destination을 제공하면 소스 대상의 모든 요소와 속성이 destination에 복사됩니다.3. 만약에 소스가 대상이나 수조(예를 들어null 또는undefined)가 아니라면source를 되돌려줍니다.4.source와 destination 형식이 일치하지 않으면 이상이 발생합니다.주의: 이것은 단순 복사 덮어쓰기입니다. 유사한 계승이 아닙니다.
사용 방법:
angular.copy(source, [destination]);

매개변수:
매개변수 이름
매개변수 유형
묘사
source
*
복사된 대상입니다.null과undefined를 포함한 모든 종류를 사용할 수 있습니다.
destination (optional)
Object,array
코피가 가는 목적지.생략할 수 있습니다. 생략하지 않으면 소스와 동류여야 합니다
source의 값은 destination의 값을 완전히 덮어씁니다
angular.module('copyApp', [])
    .controller('CopyController', ['$scope', function($scope) {
         var source={
           name:'chentian',
           age:27,
           email:'[email protected]',
           clothse:{
             clothse1:'aaa',
             clothse2:'bbb',
             clothse3:'ccc',
             clothse4:'ddd',
           }
         };
      var destination={
        money:'10000',
        house:'1',
        car:'2'
      };
      console.warn('destination',destination);
      var test=angular.copy(source,destination);
      console.warn('test',test);
      console.warn('source',source);
      console.warn('destination',destination);
    }]);

angular.extend()


정의: 두 번째 매개변수와 다음 매개변수의 첫 번째 레이어 속성(단순 속성이든 객체든)을 첫 번째 매개변수의 첫 번째 레이어 속성에 순차적으로 복사하고 첫 번째 레이어 속성이 객체인 경우 동일한 객체를 참조하고 첫 번째 매개변수 객체를 반환합니다.
사용 방법:
angular.extend(destination, [source]);

실례1: var r = angular.extend(b, a);객체의 첫 번째 속성(단순 속성이든 객체든)을 객체의 첫 번째 속성a에 복사하여 부여하고 객체의 경우 동일한 객체를 참조하여 객체b로 반환합니다.
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: b;객체var r = angular.extend(b, a, z)의 첫 번째 레이어 속성(단순 속성이든 객체든)을 객체a、z의 첫 번째 레이어 속성으로 복사합니다. 즉, 객체인 경우 동일한 객체를 참조하고 객체b로 돌아갑니다.
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';// ,z b.family.amount z , a 。 a , ,z ,a 
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":" "}}

좋은 웹페이지 즐겨찾기