Page 21 -
P. 21
2 동적 프로토타입 기반 객체 지향 언어다
C++와 Java 등은 클래스를 이용하여 객체를 생성하는 클래스 기반 객체 지향 언어입니다. 반면
에 자바스크립트는 클래스가 아닌 프로토타입을 상속하는 프로토타입 기반 객체 지향 언어입니
다. 자바스크립트에서는 객체를 생성한 후에도 프로퍼티와 메서드를 동적으로 추가하거나 삭제할
수 있습니다. 이 또한 C++와 Java 같은 클래스 기반 객체 지향 언어의 객체와 다른 점입니다.
3 동적 타입 언어다
C++와 Java는 실행되기 전에 변수 타입이 결정되는 정적 타입 언어입니다. 반면에 자바스크립트
는 변수 타입이 없습니다. 따라서 프로그램을 실행하는 도중에 변수에 저장되는 데이터 타입이 동
적으로 바뀔 수 있습니다. 이러한 언어를 동적 타입 언어라고 합니다.
4 함수가 일급 객체다
자바스크립트의 함수는 객체이며, 함수에 함수를 인수로 넘길 수 있습니다. 이것이 자바스크립트
의 함수가 일급 객체(Frist class object)인 이유입니다. 이 특성을 활용하면 고차 함수를 구현할 수
있어 함수형 프로그래밍이 가능해집니다.
5 함수가 클로저를 정의한다
자바스크립트의 함수는 클로저(closure)를 정의합니다. 클로저로 변수를 은닉하거나 영속성을 보
장하는 등 다양한 기능을 구현할 수 있습니다.
자바스크립트의 다양한 특징 중에서도 특히 함수가 일급 객체라는 점, 클로저를 이용할 수 있다는
점, 동적 프로토타입 기반의 객체 지향 언어라는 점이 자바스크립트를 다른 언어보다 더 강력한
프로그래밍 언어로 만들었습니다. 이러한 요소는 자바스크립트 언어의 사양을 해석할 때 가장 중
요한 요소입니다.
1.1.3 자바스크립트의 기술적 요소
자바스크립트는 다음과 같은 기술적 요소로 구성된 언어입니다. 이러한 요소는 자바스크립트에서
학습해야 할 항목이기도 합니다.
038
자바.indb 38 2018-03-19 오전 9:35:31