[javascript] 애로우 함수와 프로토타입 메소드

자바스크립트는 함수를 정의하는 여러 가지 방법을 제공합니다. 그 중에서 애로우 함수(arrow function)은 ES6에서 도입된 새로운 함수 정의 방식입니다. 또한 프로토타입 메소드(prototype method)는 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이번 글에서는 애로우 함수와 프로토타입 메소드의 개념과 활용에 대해 알아보겠습니다.

애로우 함수 (Arrow Function)

애로우 함수는 function 키워드 대신 => 기호를 사용하여 함수를 정의하는 방식입니다. 일반 함수와 달리 this 문맥을 바인딩하지 않고, 자신의 부모 스코프를 상속받습니다. 이로 인해 애로우 함수는 주로 간단한 기능을 수행하거나, 외부 스코프의 변수를 사용하는 콜백 함수로 사용됩니다.

다음은 애로우 함수의 간단한 예시입니다.

const multiply = (a, b) => {
  return a * b;
};

// 혹은
const double = (num) => num * 2;

애로우 함수는 함수 표현식으로 사용될 때 가장 효과적으로 사용되며, 익명 함수의 경우에 많이 활용됩니다.

프로토타입 메소드 (Prototype Method)

프로토타입 메소드는 객체의 프로토타입에 메소드를 추가하는 방식으로 함수를 정의하는 것을 말합니다. 모든 JavaScript 객체는 자신의 부모 역할을 하는 프로토타입 객체를 가지며, 이를 통해 메소드를 상속받을 수 있습니다. 프로토타입 메소드는 모든 인스턴스가 공유하므로, 메모리를 효율적으로 사용할 수 있습니다.

다음은 프로토타입 메소드를 정의하는 예시입니다.

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.introduce = function() {
  return `My name is ${this.name} and I'm ${this.age} years old.`;
};

const person1 = new Person('Alice', 25);
console.log(person1.introduce()); // My name is Alice and I'm 25 years old.

프로토타입 메소드를 사용하여 객체의 동작을 정의하면, 해당 객체가 생성될 때마다 메소드가 생성되는 것이 아니라 모든 인스턴스가 공유하는 하나의 메소드로 사용됩니다.

결론

애로우 함수와 프로토타입 메소드는 모두 JavaScript의 강력한 기능으로, 각각의 사용 사례에 따라 적합한 상황이 있습니다. 애로우 함수는 간결하고 명확한 코드를 작성할 때 유용하며, 프로토타입 메소드는 메모리를 효율적으로 사용하면서 객체의 동작을 확장하는 데 유용합니다.

더 많은 자바스크립트의 함수 정의 방식과 메소드 활용 방법을 학습하여, 자신에게 맞는 코딩 스타일을 찾아보시기 바랍니다.

참고 문헌: