JavaScript에서의 객체와 메서드 이해하기

BossTeemo·2024년 5월 5일
0
post-thumbnail

JavaScript에서의 객체와 메서드 이해하기

소개

JavaScript에서 메서드는 객체의 프로퍼티로 정의된 함수입니다. 메서드는 객체와 관련된 동작을 정의하고 실행하는 기능을 제공합니다. 이번 글에서는 객체에서 메서드를 정의하고 사용하는 방법에 대해 알아보겠습니다.

메서드 정의

메서드를 정의하는 방법은 여러 가지가 있습니다:

  1. 익명 함수로 정의

    • 객체의 프로퍼티로 익명 함수를 할당하여 메서드를 정의할 수 있습니다.
    let person = {
        name: 'Alice',
        greet: function() {
            console.log(`Hello, my name is ${this.name}`);
        }
    };
    person.greet(); // Hello, my name is Alice
  2. 축약된 메서드 정의

    • ES6부터 메서드를 정의하는 새로운 문법이 도입되어, 간단하게 메서드를 정의할 수 있습니다.
    let person = {
        name: 'Alice',
        greet() {
            console.log(`Hello, my name is ${this.name}`);
        }
    };
    person.greet(); // Hello, my name is Alice
  3. 객체 외부에서 메서드 추가

    • 이미 정의된 객체에 메서드를 추가할 수 있습니다.
    let person = {
        name: 'Alice'
    };
    person.greet = function() {
        console.log(`Hello, my name is ${this.name}`);
    };
    person.greet(); // Hello, my name is Alice

this 키워드

메서드 내에서 this 키워드는 해당 메서드가 속한 객체를 참조합니다. 이를 통해 객체의 다른 프로퍼티에 접근하거나 메서드 간에 데이터를 공유할 수 있습니다.

예시:

let calculator = {
    value: 0,
    add(num) {
        this.value += num;
        return this;
    },
    subtract(num) {
        this.value -= num;
        return this;
    },
    getResult() {
        return this.value;
    }
};

console.log(calculator.add(5).subtract(2).getResult()); // 3

위 코드에서 thiscalculator 객체를 참조합니다. 이를 통해 메서드 간에 데이터를 공유하고 메서드 체이닝을 사용할 수 있습니다.

객체 생성자와 프로토타입 메서드

객체 생성자를 통해 메서드를 정의하면 여러 인스턴스에서 메서드를 공유할 수 있습니다.

  1. 객체 생성자

    • 생성자 함수는 일반 함수와 비슷하지만, new 키워드로 호출하여 객체 인스턴스를 생성할 수 있습니다.
    function Person(name) {
        this.name = name;
    }
    
    Person.prototype.greet = function() {
        console.log(`Hello, my name is ${this.name}`);
    };
    
    let alice = new Person('Alice');
    alice.greet(); // Hello, my name is Alice
  2. 프로토타입 메서드

    • 생성자 함수로 생성된 객체는 prototype을 통해 메서드를 상속받습니다. 이렇게 하면 메서드가 메모리에 하나만 존재하고 모든 인스턴스가 이를 공유할 수 있습니다.

결론

JavaScript의 메서드는 객체와 관련된 동작을 수행하는 중요한 역할을 합니다. 다양한 방법을 사용하여 메서드를 정의하고 활용하여 객체의 기능을 확장하고 활용해보세요.

profile
1인개발자가 되겠다

0개의 댓글