객체 메서드 (Object Methods)
자바스크립트(JavaScript)에서 객체 메서드(Object Methods)는 객체(Object)를 조작하고 관리하는 기능을 제공한다. 속성 관리와 객체 상태 변화를 처리한다. 객체 메서드(Object Methods)의 정의, 동작 방식, 일반 객체와의 차이점, 그리고 사용 사례를 예제로 확인한다.
객체 메서드(Object Methods)는 Object 객체에 정의된 정적 메서드와 인스턴스 메서드를 포함한다. ES5와 ES6에서 확장된 기능들이 있다.
객체 메서드(Object Methods)란 무엇인가?
객체 메서드(Object Methods)는 객체(Object)에 대한 작업을 수행하는 내장 함수다. 기본적인 예제를 살펴보자:
const obj = { name: "철수" };
console.log(Object.keys(obj)); // ["name"]
Object.keys
는 객체의 속성 키를 배열로 반환한다. 다른 예제는 다음과 같다:
const frozen = Object.freeze({ age: 25 });
frozen.age = 30;
console.log(frozen.age); // 25
객체 메서드(Object Methods)의 동작 방식
객체 메서드(Object Methods)는 객체의 속성, 프로토타입(Prototype), 상태를 다룬다. 정적 메서드는 Object
를 직접 호출하며, 인스턴스 메서드는 객체에서 상속된다.
예제를 통해 동작 방식을 확인한다:
const target = { x: 1 };
const source = { y: 2 };
const merged = Object.assign(target, source);
console.log(merged); // { x: 1, y: 2 }
Object.assign
은 소스 객체의 속성을 대상 객체로 복사한다.
객체 메서드(Object Methods)와 일반 객체의 차이점
1. 조작 가능성
- 일반 객체: 직접 접근만 가능.
const plain = { a: 1 };
console.log(plain.a); // 1
- 객체 메서드: 구조화된 조작.
console.log(Object.values(plain)); // [1]
2. 기능성
- 일반 객체: 기본 동작.
- 객체 메서드: 추가 기능 제공.
사용 사례
객체 메서드(Object Methods)의 활용 사례를 예제로 확인한다.
1. 속성 목록
const data = { id: 1, name: "영희" };
console.log(Object.keys(data)); // ["id", "name"]
2. 값 추출
console.log(Object.values(data)); // [1, "영희"]
3. 객체 병합
const obj1 = { a: 1 };
const obj2 = { b: 2 };
console.log(Object.assign({}, obj1, obj2)); // { a: 1, b: 2 }
4. 객체 동결
const locked = Object.freeze({ key: "값" });
locked.key = "변경";
console.log(locked.key); // 값
5. 프로토타입 확인
const proto = { test: true };
const obj3 = Object.create(proto);
console.log(Object.getPrototypeOf(obj3).test); // true
6. 속성 정의
const defined = {};
Object.defineProperty(defined, "secret", {
value: 42,
writable: false
});
console.log(defined.secret); // 42
7. 속성 설명자
console.log(Object.getOwnPropertyDescriptor(defined, "secret"));
// { value: 42, writable: false, enumerable: false, configurable: false }
8. 객체 생성
const created = Object.create(null, {
x: { value: 1, writable: true }
});
console.log(created.x); // 1
성능과 한계
장점
- 편리함: 객체 관리가 간단해진다.
- 제어: 속성 접근을 세밀히 조정한다.
한계
- 오버헤드: 복잡한 작업은 성능에 영향을 줄 수 있다.
- 호환성: 일부 메서드는 최신 환경에서만 동작한다.
필요한 메서드만 사용하여 불필요한 호출을 줄인다.
마무리
객체 메서드(Object Methods)는 자바스크립트(JavaScript)에서 객체를 다루는 유용한 방법이다. 사용 사례를 통해 그 활용 방식을 살펴봤다.
'코딩 공부 > 자바스크립트' 카테고리의 다른 글
44. 자바스크립트 getter와 setter (Getters and Setters) (0) | 2025.03.13 |
---|---|
43. 자바스크립트 속성 열거 (Property Enumeration) (1) | 2025.03.13 |
40. 자바스크립트 프록시 (Proxy) (1) | 2025.03.12 |
39. 자바스크립트 상속 구현 (Implementing Inheritance) (1) | 2025.03.12 |
38. 자바스크립트 프로토타입 체인 (Prototype Chain) (0) | 2025.03.12 |