객체 메서드 (Object Methods)

객체 메서드 (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)에서 객체를 다루는 유용한 방법이다. 사용 사례를 통해 그 활용 방식을 살펴봤다.


+ Recent posts