250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

프로토타입(Protorype) 이란? 본문

[Snow-ball]프로그래밍(컴퓨터)/자바스크립트(JavaScript)

프로토타입(Protorype) 이란?

Snow-ball 2021. 4. 3. 11:29
반응형

자바스크립트는 동적인 언어라는 점에서 클래스가 없으며, 흔히 프로토타입 기반 언어(prototype-based language)라고 불린다. (ES2015부터 class 키워드를 지원하기 시작했으나, 문법적인 양념일 뿐이며 자바스크립트는 여전히 프로토타입 기반의 언어이다.)

 

상속 관점에서 자바스크립트의 유일한 생성자는 객체뿐이다. 각각의 객체는 [[Prototype]]이라는 은닉(private) 속성을 가지는데 자신의 프로토타입이 되는 다른 객체를 가리킨다. 그 객체의 프로토타입 또한 프로토타입을 가지고 있고 이것이 반복된다. 결국 null을 프로토타입으로 가지는 오브젝트에서 끝이난다. null은 더이상 프로토타입이 없다고 정의되며, 프로토타입 체인의 종점 역할을 한다.

 

모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미이다. 위에서 언급한 것과 마찬가지로 프로토타입 객체도 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수도 있고 그 상위 프로토타입 객체도 마찬가지이다. 이를 프로토 타입 체인(prototype chain)이라 부르며 다른 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간입니다.

 

종종 이러한 점이 JS의 약점이라고 지적되지만, 프로토타입적 상속 모델은 사실 고전적인 방법보다 좀 더 강력한 방법이다. 그말은, 프로토타입적 모데렝서 고전적인 방식을 구현하는 건 사소한 일이지만, 그 반대는 어려운 일이기 때문이다.

 

 

 

 

 

 

 

 

베타존 : 네이버쇼핑 스마트스토어

나를 꾸미다 - 인테리어소품 베타존

smartstore.naver.com

 

반응형
Comments