2007년 11월 27일
SWAF Class의 instanceof 지원
Javascript에서 new로 생성된 인스턴스들은 instanceof 연산자를 통해 인스턴스를 확인 할 수 있습니다.
SWAF의 클래스도 물론 이를 지원합니다. 그러나, 문제가 되는 것이 다중 상속...
그래서, 잠시(ㅜㅜ)의 고민 끝에 다음과 같은 기능으로 지원하도록 하였습니다.
1. 단일 상속일 경우 javascript의 instanceof 연산자는 정상 동작 합니다.
따라서,
lib.classes.myclass가 lib.classes.parent1을 상속받았다고 할 때,
var cls = new lib.classes.myclass;
cls instanceof lib.classes.myclass 는 true이고
cls instanceof lib.classes.parent1도 true 입니다.
2. 다중 상속일 경우 다중 상속 리스트의 첫번째 부모 클래스에 대해서만 instanceof 연산자는 true를 리턴합니다. 다중 상속에서 정상적으로 인스턴스를 확인하기 위해 별도로 instanceOf()라는 공통 메소드를 제공합니다.
lib.classes.myclass가
lib.classes.parent1와 lib.classes.parent2를 상속받았다고 할 때,
var cls = new lib.classes.myclass;
clsinstanceof lib.classes.myclass 는true이고
cls instanceof lib.classes.parent1도true 이지만, cls instanceof lib.classes.parent2는false 입니다.
대신 instanceOf() 메소드를 사용하면,
cls.instanceOf(lib.classes.myclass)와 cls.instanceOf(lib.classes.parent1), cls.instanceOf(lib.classes.parent2)는 모두 true 입니다.
보통은 단일 상속을 이용할 것으로 생각되므로, javascript의 instanceof 연산자를 이용하는데 큰 불편은 없을 것으로 생각됩니다.
# by | 2007/11/27 15:12 | SWAF | 트랙백 | 덧글(0)




☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]