제 9장. 클래스, 생성자, 프로토타입
클래스, 생성자, 프로토타입 의 예제 |
Script Sample 소스 |
Sample 실행 화면 |
< 설명 > Square Information 1. 자바스크립트는 C#, Java 처럼 완벽한 OOP를 지원하진 않지만, 비슷하게 흉내정도는 낼 수 있다. 위의 예제는 생성자 함수를 이용해서 객체를 생성하는 방법이다. 다른 언어들처럼 클래스에서 프로퍼티로 접근할 경우 this 를 사용해서 set, get 을 할 수 있다. 생성당시에 프로퍼티, 메서드를 정의해서 사용할 수 있지만, prototype을 이용해서 추가하는 방법도 있다. prototype으로 추가할 경우 내부 프로퍼티가 아니므로 hasOwnProperty는 false를 반환한다.
String Test 2. 사용자 정의 클래스가 아닌 내장형 타입에서도 prototype을 이용해서 메서드를 추가할 수 있다. 위의 예제에서 보면, String 객체에 contains 메서드를 추가하여 사용한 것을 볼 수 있다. indexOf 는 대,소문자를 구분하므로, 각각 다른 값을 반환한다.
instanceof, constructor 3. instanceof 는 Object, Function, Array, Date, String 에 대해서 인스턴스 여부를 알 수 있다. 모든 클래스는 Object 를 상속하였기 때문에 모든 인스턴스는 Object 의 인스턴스이다. 하지만, constructor 는 어떤 객체로 생성했는지를 정확하게 알 수 있다. 함수는 Object 이지만, construcotr 는 Function 이다. |