상속 3

프로토타입 더 알아보기

🙋‍♂️프로토타입이 뭐죠? 두 가지를 잘 구분해야 합니다. 내부슬롯으로서 프로토타입, [[Prototype]] 프로토타입 내부슬롯은 자바스크립트 엔진에서 관리하는 객체로, 자신(인스턴스)을 생성한 생성자 함수의 prototype 프로퍼티를 가리킨다. 금단의 프로퍼티, 던더프로토(__proto__)로 **[[Prototype]]**에 접근할 수 있다. 생성자 함수의 프로퍼티인 prototype 프로토타입(prototype)은 생성자 함수가 될 수 있는 모든 함수의 프로퍼티로 생기는 객체인데, 그 이름이 prototype이다. 지금은 잘 이해되지 않더라도 계속 읽고 실습해보면서 둘의 차이와 관계를 알아보아요! 🙋‍♂️더 자세히 말해주세요! ECMAScript를 참고해볼까요? 프로토타입은 "다른 객체들을 위한..

[Javascript] 프로토타입으로 클래스 구현하기

프로토타입으로 클래스 구현하기 자바스크립트에는 '상속' 개념이 존재하지 않습니다. 하지만 클래스 기반의 다른 언어에 익숙한 개발자들의 니즈에 따라 ES6에는 클래스 문법이 추가됐습니다. 하지만 ES6 클래스에서 일정 부분은 프로토타입을 활용하고 있기 때문에, ES5 체제 하에서 클래스를 흉내내기 위한 구현 방식을 학습하는 것은 큰 의미가 있습니다. 클래스와 인스턴스의 개념 이해 상위의 개념과 하위의 개념이 있습니다. 개념을 어떤 '집단'으로 표현하면, 영어로 그것은 클래스라고도 할 수 있습니다. 다시 말해, 상위 클래스와 하위 클래스가 있습니다. 하위 클래스는 상위 클래스를 포함하면서 더 구체적인 내용(개념)이 추가됩니다. 여기서 클래스의 예는 '음식'이고 그 하위 개념(클래스)는 '과일'이며, 또 그 ..

재사용, 상속보다는 조립으로

재사용: 상속보단 조립 상속을 사용하면 재사용을 쉽게 할 수 있는 것은 분명하다. 하지만 상속을 사용할 경우 몇 가지 문제점이 있다. 이 글에서는 상속을 통한 재사용 과정에서 발생할 수 있는 문제점을 살펴보고, 또 다른 재사용 방법인 객체 조립을 통해 상속을 통한 재사용의 단점을 해소하는 방법을 알아본다. 상속을 통한 재사용의 단점 상위 클래스 변경의 어려움 어떤 클래스를 상속받는다는 것은 그 클래스에 의존한다는 뜻이다. 따라서 의존하는 클래스의 코드가 변경되면 영향을 받을 수 있다. 즉, 상위 클래스에서 변경의 여파가 하위 클래스로 전파된다. 최악의 경우 상위 클래스의 변화가 모든 하위 클래스에 영향을 줄 수 있다. 이는 클래스 계층도에 있는 클래스들을 한 개의 거대한 단일 구조처럼 만들어 주는 결과를..