순환 참조(Circular Reference)는 객체 내의 속성이 다시 자기 자신이나 자기 자신을 포함하는 다른 객체를 참조하는 구조를 말합니다. 순환 참조가 있는 경우, 객체를 JSON으로 직렬화(문자열화)하는 과정에서 문제가 발생할 수 있습니다. 반면, 순환 참조가 없는 경우에는 이런 문제가 발생하지 않습니다.
순환 참조가 없는 경우
const person = {
name: "Alice",
friend: {
name: "Bob",
age: 30
}
};
// friend는 person을 참조하지 않으므로 순환 참조가 없습니다.
** person객체안에 friend라는 객체가 있지만, 참조하지 않으므로 JSON.stringify(person)사용 할 수 있습니다.
** // {"name": "Alice", "friend": {"name": "Bob", "age": 30}}
순환 참조가 있는 경우
const person = {
name: "Alice",
};
const friend = {
name: "Bob",
age: 30,
bestFriend: person // friend 객체가 person을 참조
};
person.friend = friend; // person 객체가 friend 객체를 참조
** 위의 경우는 순환 참조가 발생한 경우호 JSON.stringify() 사용시 오류가 발생하므로, 순환참조를 끊고 사용해야 합니다.
| Object (객체) 만드는 7가지 방법 (0) | 2024.08.16 |
|---|---|
| 생성자 함수, 팩토리 함수, constructor function, factory fanction (1) | 2024.08.16 |
| 얕은 복사, 깊은 복사, shallow copy, deep copy (0) | 2024.08.16 |
| 연관 배열, associative array, 순차 배열, sequential array, 인덱스 배열 indexed array (1) | 2024.08.15 |
| Uint8Array, Uint8CrampedArray 설명과 비교 (0) | 2024.07.30 |