Javascript에서 개체를 복사하는 방법: 1. 원본 개체의 속성을 탐색하여 새 개체에 할당합니다. 2. 개체를 문자열로 변경한 다음 json 개체로 변경합니다. 4. 스프레드 연산자를 통해 객체의 전체 복사본을 구현합니다. 5. ES6 확장 연산자를 통해 배열의 전체 복사본을 구현합니다.
이 문서의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
JS에서 객체를 복사하는 방법은 무엇인가요?
방법 1:
원본 개체의 속성을 탐색하여 새 개체에 할당합니다.
//深复制对象方法 var cloneObj = function (obj) { var newObj = {}; if (obj instanceof Array) { newObj = []; } for (var key in obj) { var val = obj[key]; //newObj[key] = typeof val === 'object' ? arguments.callee(val) : val; //arguments.callee 在哪一个函数中运行,它就代表哪个函数, 一般用在匿名函数中。 newObj[key] = typeof val === 'object' ? cloneObj(val): val; } return newObj; }; //测试 var obj = {a:function(){console.log(this.b.c)},b:{c:1}},//设置一个对象 newObj = cloneObj(obj);//复制对象 newObj.b.c=2;//给新对象赋新值 obj.a();//1,不受影响 newObj.a();//2
방법 2:
1) 먼저 개체를 문자열로 변경한 다음 개체 포인터 포인팅 문제를 방지하기 위해 json 개체로 변경합니다. 이는 전체 복사
2)입니다. 무시되고 날짜 유형 속성은 문자열로 변환됩니다.
var obj = {a:1,b:2} var newObj = JSON.parse(JSON.stringify(obj)); newObj.a=3; console.log(obj); console.log(newObj);
방법 3:
배열 객체의 방법의 경우 배열 방법을 사용하여 빈 배열을 연결합니다.
var a=[1,2,3]; var b=a; var c=[].concat(a); a.push(4); console.log(b); console.log(c);
방법 4:
연산자를 다음으로 확장합니다. 객체 Deep copy
var obj = { name: 'FungLeo', sex: 'man', old: '18'}var { ...obj2 } = obj obj.old = '22'console.log(obj) console.log(obj2)
구현 방법 5:
ES6 확장 연산자는 배열의 전체 복사본을 구현합니다
var arr = [1,2,3,4,5]var [ ...arr2 ] = arr arr[2] = 5console.log(arr) console.log(arr2)
권장 학습: "javascript 고급 튜토리얼"
위 내용은 Javascript에서 객체를 복사하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!