
structuredClone(obj) 함수는 객체의 복사본을 생성하는 데 사용할 수 있습니다. 이 함수는 객체의 모든 속성을 복사합니다.
structuredClone(obj) 함수가 생성하는 복사본은 실제 객체와 연결된 하위 객체를 참조합니다.
이러한 복사본을 수정하면 실제 객체도 함께 수정됩니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = {
a: 1,
b: {
c: 2
}
};
const clone = structuredClone(obj);
clone.b.c = 3;
console.log(obj); // { a: 1, b: { c: 3 } }
위 코드에서, clone.b.c = 3; 문장을 실행하면, obj.b.c 또한 3이 됩니다.
structuredClone(obj) 함수는 객체의 모든 속성을 복사합니다. 하지만, 이 함수는 객체의 속성이 함수일 경우, 함수를 호출하는 참조를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = {
a: function() {
console.log('Hello, World!');
}
};
const clone = structuredClone(obj);
clone.a(); // Hello, World!
위 코드에서, clone.a(); 문장을 실행하면, Hello, World!가 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Symbol일 경우, Symbol을 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = {
[Symbol('a')]: 1
};
const clone = structuredClone(obj);
console.log(clone[Symbol('a')]); // 1
위 코드에서, clone[Symbol('a')]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Proxy일 경우, Proxy를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Proxy({}, {
get: function(target, prop) {
return prop;
}
});
const clone = structuredClone(obj);
console.log(clone.get); // get
위 코드에서, clone.get; 문장을 실행하면, get가 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 WeakRef일 경우, WeakRef를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new WeakRef({ a: 1 });
const clone = structuredClone(obj);
console.log(clone.deref()); // { a: 1 }
위 코드에서, clone.deref(); 문장을 실행하면, { a: 1 }이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Map일 경우, Map을 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Map([['a', 1], ['b', 2]]);
const clone = structuredClone(obj);
console.log(clone.get('a')); // 1
위 코드에서, clone.get('a'); 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Set일 경우, Set을 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Set([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone.has(1)); // true
위 코드에서, clone.has(1); 문장을 실행하면, true가 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 ArrayBuffer일 경우, ArrayBuffer를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new ArrayBuffer(8);
const clone = structuredClone(obj);
console.log(clone.byteLength); // 8
위 코드에서, clone.byteLength; 문장을 실행하면, 8이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 DataView일 경우, DataView를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new DataView(new ArrayBuffer(8));
const clone = structuredClone(obj);
console.log(clone.byteLength); // 8
위 코드에서, clone.byteLength; 문장을 실행하면, 8이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 TypedArray일 경우, TypedArray를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Uint8Array([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1
위 코드에서, clone[0]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 BigIntArray일 경우, BigIntArray를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new BigInt64Array([1n, 2n, 3n]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1n
위 코드에서, clone[0]; 문장을 실행하면, 1n이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Float32Array일 경우, Float32Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Float32Array([1.0, 2.0, 3.0]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1.0
위 코드에서, clone[0]; 문장을 실행하면, 1.0이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Float64Array일 경우, Float64Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Float64Array([1.0, 2.0, 3.0]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1.0
위 코드에서, clone[0]; 문장을 실행하면, 1.0이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Int8Array일 경우, Int8Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Int8Array([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1
위 코드에서, clone[0]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Uint8Array일 경우, Uint8Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Uint8Array([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1
위 코드에서, clone[0]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Uint8ClampedArray일 경우, Uint8ClampedArray를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Uint8ClampedArray([1, 2, 3, 4]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1
위 코드에서, clone[0]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Int16Array일 경우, Int16Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Int16Array([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1
위 코드에서, clone[0]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Uint16Array일 경우, Uint16Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Uint16Array([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1
위 코드에서, clone[0]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Int32Array일 경우, Int32Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
javascript
const obj = new Int32Array([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone[0]); // 1
위 코드에서, clone[0]; 문장을 실행하면, 1이 출력됩니다.
structuredClone(obj) 함수는 객체의 속성이 Uint32Array일 경우, Uint32Array를 복사합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
```javascript
const obj = new Uint32Array([1, 2, 3]);
const clone = structuredClone(obj);
console.log(clone[0]); //
2025-03-05 10:22