
ES6(ECMAScript 2015) – 객체 리터럴 확장 – 2 – 프로토타입 축약
프로토타입 축약: 객체 생성과 상속을 간편하게
ES6(ECMAScript 2015)에서 객체 리터럴 확장의 일환으로, 프로토타입 축약(Prototype Shorthand) 기능이 도입되었습니다. 이 기능을 이용하면 객체의 생성과 상속을 더욱 간편하게 처리할 수 있습니다.
프로토타입 축약의 개념과 사용법
프로토타입 축약은 객체를 생성하고 상속을 구현하는 데 사용됩니다. 객체의 프로토타입은 다른 객체를 상속받아 공통 속성과 메서드를 공유하는데 사용됩니다. 예를 들어, 동일한 속성과 메서드를 갖는 여러 개의 객체를 생성할 때, 프로토타입을 사용하여 중복을 피하고 메모리를 절약할 수 있습니다.
프로토타입 축약을 사용하여 객체를 생성할 때는 다음과 같은 방법을 사용합니다:
const 객체명 = {
속성명: 속성값,
메서드명() {
// 메서드 동작
}
};
이제 해당 객체명을 통해 객체를 생성하고 속성과 메서드에 접근할 수 있습니다. 이렇게 생성된 객체는 프로토타입 체인을 통해 프로토타입 객체에서 상속받은 속성과 메서드를 사용할 수 있습니다.
프로토타입 축약 예시
아래 예시를 통해 프로토타입 축약의 사용법과 장점을 자세히 알아보겠습니다.
const person = {
name: "홍길동",
age: 30,
greeting() {
return `안녕하세요, ${this.name}입니다.`;
}
};
// person 객체를 상속받은 student 객체 생성
const student = Object.create(person);
student.name = "김철수";
student.grade = 3;
console.log(student.name); // 출력: 김철수
console.log(student.age); // 출력: 30 (person 객체의 속성 상속)
console.log(student.greeting()); // 출력: 안녕하세요, 김철수입니다.
위 예시에서 person
객체는 name
과 age
라는 속성, 그리고 greeting
이라는 메서드를 갖고 있습니다. 이 person
객체를 상속받아 student
객체를 생성하고, name
과 grade
라는 추가적인 속성을 할당했습니다.
student
객체에서 name
을 출력하면 “김철수”가 나오고, age
를 출력하면 person
객체의 속성을 상속받아 “30”이 나옵니다. 또한, student
객체에서 greeting
메서드를 호출하면 “안녕하세요, 김철수입니다.”라는 메시지가 반환됩니다. 이처럼 student
객체는 person
객체를 상속받아 공통된 속성과 메서드를 사용할 수 있게 됩니다.
프로토타입 축약의 장점과 주의할 점
프로토타입 축약은 객체의 생성과 상속을 더욱 간단하게 처리할 수 있습니다. 중복되는 속성과 메서드를 갖는 여러 객체를 생성할 때, 프로토타입을 사용하여 코드의 재사용성을 높일 수 있습니다. 또한, 프로토타입 체인을 통해 상속된 속성과 메서드를 사용하여 코드의 길이를 줄이고 가독성을 개선할 수 있습니다.
하지만 주의해야 할 점도 있습니다. 프로토타입 축약을 사용할 때는 객체 리터럴 내부에서만 사용할 수 있으며, 생성자 함수와 함께 사용할 수 없습니다. 또한, 프로토타입 체인에서 속성 또는 메서드를 찾을 때, 해당 객체의 프로토타입 체인을 모두 검색하므로 검색 속도가 상대적으로 느릴 수 있습니다.
마무리
ES6(ECMAScript 2015)의 객체 리터럴 확장 중 프로토타입 축약은 객체의 생성과 상속을 간편하게 처리할 수 있는 기능입니다. 프로토타입 축약을 통해 객체를 생성하고 상속을 구현하면 중복된 코드를 피하고 코드의 재사용성을 높일 수 있습니다. 하지만 프로토타입 체인 검색 속도에 주의하고, 객체 리터럴 내부에서만 사용할 수 있다는 점을 명심해야 합니다.
프로토타입 축약은 자바스크립트에서 객체 지향 프로그래밍을 더욱 효율적으로 구현하는 데 도움이 됩니다. 적절히 활용하여 코드를 작성하면 가독성이 좋아지고 유지 보수성이 향상되는 장점을 얻을 수 있습니다. 자바스크립트를 사용하면서 객체와 상속에 대해 자유롭게 다룰 수 있도록 프로토타입 축약을 잘 활용해 보세요!