3.1 프로토타입 상속 예
<script type="text/javascript">
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name;
};
function User(name, password){
this.name = name;
this.password = password;
}
//User 객체가 Person 객체의 모든 메서드를 상속한다.
//가장 중요하다.
User.prototype = new Person();
//User 객체에 새 메서드를 하나 추가한다.
User.prototype.getPassword = function(){
return this.password;
};
//new User()를 실행할 때 마다 User 객체는 new Person()을 실행했을 때
//Person 객체가 갖는 모든 메서드를 갖는다.
var user1 = new User("scott","tiger");
alert(user1.getName()); //scott
alert(user1.getPassword()); //tiger
</script>
3.3 더글러스 크록포드가 만든 클래스 상속 스타일 자바스크립트 함수를 사용하는 예
<script type="text/javascript">
function Person(name){
this.name = name;
}
//Person 객체에 새로운 메서드를 추가한다.
Person.method('getName', function(){
return this.name;
});
function User(name, password){
this.name = name;
this.password = password;
}
//Person 객체의 모든 메서드를 상속받는다.
User.inherits(Person);
//새 메서드를 User 객체에 추가한다
User.method('getPassword', function(){
return this.password;
});
User.method('getName', function(){
return "My name is "+this.uber('getName');
});
</script>
3.8 자바스크립트에서 네임스페이스 만들기와 그 구현 방법
//기본 전역 네임스페이스를 만든다.
var YAHOO = {};
//객체를 사용해 자식 네임스페이스 만들기를 준비한다.
YAHOO.util = {};
//함수 프로퍼티를 담는 마지막 네임스페이스를 만든다.
YAHOO.util.Event = {
addEventListener : function () { ... }
};
//특정 네임스페이스 안에 있는 함수를 호출한다.
YAHOO.util.Event.addEventListener( ... )
if (dog == cat){
if (cat == mouse){
mouse = "cheese";
}
}