javascript 모조클래스

생성자
function Rectangle(w,h){
this.width=w;
this.height=h;
}
var rect1= new Rectagle(2,4); //rect1={width:2,height:4}

생성자 함수에는 일반적으로 반환값이 없다. 다시 말해, 생성자 함수는 this키워드가 가리키는 객체를 초기화시킬 뿐 아무런 값도 반환하지 않는다. 하지만 생성자 함수에서 결과값으로 객체를 반환하면 반환값을 가질 수 있으며, 이때 반환되는 객체는 new 문장의 결과값이 된다. 그리고 생성자 안의 this가 가리키고 있던 객체는 페기도니다.

프로토타입과 상속
자바스크립트의 모든 객체는 프로토타입이라고 불리는 또 다른 객체를 내부적으로 참조할 수 있다. 그리고 객체는 프로토타입의 프로퍼티들을 자신의 프로퍼티로 가져온다. 다시 말해 자바스크립트의 객체는 자신의 프로토타입에 있는 프로퍼티를 상속받는다.
function Rectangle(w,h){
this.width=w;
this.height=h;
}
Rectangle.prototype.area=function(){return this.width * this.height;}

상속받은 프로퍼티의 읽기와 쓰기
읽을때 객체에 프로퍼티가 없으면 프로토타입 객체에 프로퍼티를 검사한다.
쓸때는 프로토타입을 검사하지 않는다. 객체에 해당 프로퍼티가 없으면 그 프로퍼티를 만든다.

내장형 타입의 확장
프로토타입을 사용하면 내장객체의 프러퍼티를 만들수 있다. 하지만 좋은 방법은 아니다.
내장형 네이티브 클래스의 프로토타입을 확장하는 것이 안전하고 유용하다.

자바스크립트의 클래스 시뮬레이션
자바나 C++ 자바스크립트간의 비교
자바스크립트의 객체는 프로퍼티의 개수에 제한이 없으며, 동적으로 추가할 수도 있다.
자바나 C++에서 클래스는 객체의 구조를 정의한다.
인스턴스 프로퍼티
인스턴스 메서드
클래스 프로퍼티
클래스 메소드

공통적인 객체 메서드
toString()메서드
valuOf()메서드
비교메서드
 a<b a.compareTo(b) <0
 a<=b a.compareTo(b) <=0
 a>b a.compareTo(b)>0
 a>=b a.compareTo(b)>=0
 a==b a.compareTo(b)==0
 a!=b a.compareTo(b)!=0

슈퍼클래스와 서브 클래스

상속없이 확장하기

댓글

이 블로그의 인기 게시물

javascript ===, ==, >=, <=연산자

SQL oracle 내장함수[문자열 처리]

javascript 데이터 타입과 값