본문 바로가기

개발자 페이지/Javascript

07 클래스 by 코어 자바스크립트

728x90
반응형

아래 내용은 '코어 자바스크립트' 정재남 저 | 위키북스의 내용을 발췌한 것으로

 자세한 내용은 해당 서적을 확인 바랍니다. 

 

자바 스크립트 내의 클래스(CLASS)는 사용자의 니즈에 따라 ES6에서 문법에 추가되었으며 다만 ES6의 클래스에서도 일정 부분은 프로토타입을 활용하고 있기 때문에, ES5 체제 하에서 클래스를 흉내내기 위한 구현방식을 학습하는 것은 여전히 큰 의미를 지닌다.

 

클래스와 인스턴스의 개념 이해

클래스는 하위로 갈수록 상위 클래스의 속성을 상속하면서 더 구체적인 요건이 후가 또는 변경된다. 물론 하위 클래스가 아무리 구체화되더라도 이들은 결국 추상적인 개념일 뿐이다.

 

클래스의 속성을 지니는 실존하는 개체를 일컬어 인스턴스라고 한다.

:어떤 조건에 부합하는 구체적인 예시 -> 조건은 클래스, 어떤 클래스에 속한 개체는 그 클래스의 조건을 모두 만족하므로 그 클래스의 구체적인 예시, 즉 인스턴스가 된다.

 

자바스크립트의 클래스

생성자 함수 Array를 new 연산자와 함께 호출하면 인스턴스가 생성되고, 이때 Array를 일종의 클래스라고 하면, Array의 prototype 객체 내부 요소들이 인스턴스에 '상속'된다고 볼 수 있다. (엄밀히는 프로토타입 체이닝에 의한 참조지만 결과적으로 동일하게 작동) 한편 Array 내부 프로퍼티들 중 prototype 프로퍼티를 제외한 나머지는 인스턴스에 상속되지 않는다.

인스턴스에 상속되는지 여부에  따라 스태틱멤버(static member)와 인스턴스 멤버(instance member)로 나뉜다.

프로토타입 메서드(prototype method)

 

자바스크립트는 프로토타입 기반 언어라서 클래스 및 상속 개념은 존재하지 않지만 프로토타입을 기반으로 클래스와 비슷하게 동작하게끔 하는 다양한 기법들이 도입돼 왔다. 클래스는 어떤 사물의 공통 속성을 모아 정의한 추상적 개념이고, 인스턴스는 클래스의 속성을 지니는 구체적인 사례이다. 

 

클래스의 prototype 내부에 정의된 메서드를 프로토타입 메서드라 하며, 이들은 인스턴스가 마치 자신의 것 처럼 호출할 수 있다. 클래스에 직접 정의한 메서드를 스태틱 메서드라하며, 이들은 인스턴스가 직접 호출할 수 없으며 클래스에 의해서만 호출 될 수 있다.

728x90