전단 (1) js 개체 클론
1598 단어 전단
공식 적 으로 통용 되 는 대상 복제 방법 을 제시 하지 않 았 다.
우 리 는 다음 과 같은 몇 가지 방법 을 제시한다.
1. 공통 대상 복제:
function clone(obj){
let temp = null;
if(obj instanceof Array){
temp = obj.concat();
}else if(obj instanceof Function){
// ,js
temp = obj;
}else{
temp = new Object();
for(let item in obj){
let val = obj[item];
temp[item] = typeof val == 'object'?clone(val):val; // , ,
}
}
return temp;
}
전체 clone 함수 의 생각 이 좀 어 지 러 울 수 있 지만 이렇게 정리 할 수 있 습 니 다.
obj 의 value 를 일반 값, 배열, 함수 만 있 는 것 으로 생각 하고 순서대로 처리 한 다음 에 이전의 '일반 값' 이 object 일 수 있 으 므 로 여기 서 판단 을 하고 clone 함 수 를 재 귀 하면 됩 니 다.
ps: 주의해 야 할 것 은 정부 에서 새로운 함수 인 스 턴 스 를 생 성 할 수 있 는 방법 이 있 습 니 다. 바로 bid () 입 니 다.
function aaa(){
console.log(this);
};
var c = aaa;
var d = aaa.bind(); //bind , window
c === aaa; //true
d === aaa; //false
2. JSON 대상 서열 화 방법
이 방법 은 분명히 훨씬 간단 하지만, 단점 이 하나 있 는데, 바로 함 수 를 복제 할 수 없다 는 것 이다.
var obj = {a:1,b:2}
var newObj = JSON.parse(JSON.stringify(obj));
3. dom 요소 의 복사 - cloneNode
let div = document.getElementById('box');
let box2 = div.cloneNode(true);
4. es6 새로운 방법 - Object. assign
var obj = {a:1,b:2}
var newObj = Object.assign({}, obj);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
전단 자동화 워 크 플 로 의 hooks예 를 들 어 우 리 는 git commt 전에 eslint 코드 검사, npm install 전에 프로젝트 의존 도 를 검사 하고 싶 습 니 다.전형 적 인 상황 에서 각종 도 구 는 특정한 동작 이 발생 할 때 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.