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
   16   17   18   19   20   21   22   23   24   25   26