JavaScript에서의 객체와 메서드 이해하기
JavaScript에서 메서드는 객체의 프로퍼티로 정의된 함수입니다. 메서드는 객체와 관련된 동작을 정의하고 실행하는 기능을 제공합니다. 이번 글에서는 객체에서 메서드를 정의하고 사용하는 방법에 대해 알아보겠습니다.
메서드를 정의하는 방법은 여러 가지가 있습니다:
익명 함수로 정의
let person = {
name: 'Alice',
greet: function() {
console.log(`Hello, my name is ${this.name}`);
}
};
person.greet(); // Hello, my name is Alice
축약된 메서드 정의
let person = {
name: 'Alice',
greet() {
console.log(`Hello, my name is ${this.name}`);
}
};
person.greet(); // Hello, my name is Alice
객체 외부에서 메서드 추가
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
위 코드에서 this
는 calculator
객체를 참조합니다. 이를 통해 메서드 간에 데이터를 공유하고 메서드 체이닝을 사용할 수 있습니다.
객체 생성자를 통해 메서드를 정의하면 여러 인스턴스에서 메서드를 공유할 수 있습니다.
객체 생성자
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
프로토타입 메서드
prototype
을 통해 메서드를 상속받습니다. 이렇게 하면 메서드가 메모리에 하나만 존재하고 모든 인스턴스가 이를 공유할 수 있습니다.JavaScript의 메서드는 객체와 관련된 동작을 수행하는 중요한 역할을 합니다. 다양한 방법을 사용하여 메서드를 정의하고 활용하여 객체의 기능을 확장하고 활용해보세요.