메서드가 너무 많기 때문에.. 차차 정리할 예정
Object
객체는 mutable이다. 키가 중복이 되면 덮어 쓴다.
Property
객체 내부의 속성을 의미한다, 객체는 Property의 집합이다.
key와 value의 쌍으로 구성되어 있다.
✔️ Object.keys(obj)
객체의 키만 담은 배열을 반환, Symbol은 keys를 통해 나오지 않는다.
const key = Object.keys(user);
✔️ Reflect.ownKeys(obj)
Symbol도 함께 출력 할 수 있다.
console.log("🚀 ~ key:", key, Reflect.ownKeys(user));
key값은 대괄호를 씌워주자
const k = "id";
const { [k]: dd } = user;
console.log("🚀 ~ dd:", dd);
b와 c를 넣을 때 자체 그대로 넣었기 때문네 [Object Object]가 키로 들어가게 되어 덮어 쓰여지게 된다.
const a = {};
const b = { k: 1 };
const c = { k: 2 };
a[b] = 77; //{ '[object Object]': 77 }
a[c] = 99; //{ '[object Object]': 99 } -> 덮어 쓰여짐
console.log(a); //99
✔️ Object.prototype.hasOwnProperty()
Object.prototype.hasOwnProperty("addr")
Object.getOwnPropertyDescriptor(user, 'id')
Object.getOwnPropertyDescriptors(user)
Object.defineProperty(user, 'age', { value: 39, writable: false});
Object.preventExtensions(user);
Object.seal(user);
Object.freeze(user);
Reflect 객체
리플렉션: 런타임에서 객체의 변수, 속성 및 메서드를 다이나믹하게 조작하는 프로세스를 말한다.
ES6에서 추가된 기능이다. 명령을 가로챌 수 있는 메서드를 제공하는 내장 객체라고 한다,,'?
아래의 블로그를 보는게 왕왕 좋음
참고
'JavaScript' 카테고리의 다른 글
| [JS] Debounce 와 Throttle (0) | 2025.04.11 |
|---|---|
| [JS] 함수 (바인딩, this, 익명, 즉시 실행 함수) (0) | 2025.04.10 |
| [JS] 클로저 & 커링 (1) | 2025.04.09 |
| [JS] 메모이제이션 (0) | 2025.04.09 |
| [JS] 스코프 실행컨텍스트 (0) | 2025.04.08 |