자바스크립트를 클래스화 시키는 방법에 대해 적어볼까 합니다.
사실 자바스크립트 자체가 워낙 문법에 엄격하지 않다보니
객체지향(OOP)에익숙하지 않더라고이 부분을쉽게 이해할 수 있으리라 생각됩니다.
<script>
function person(id,password)
{
this.id=id;
this.password=password;
}
person.prototype={
getId:function()
{
return this.id;
},
setId:function(id)
{
this.id=id;
},
getPassword:function()
{
return this.password;
},
setPassword:function(password)
{
this.password=password;
}
}
//아이디를 se2n, 비밀번호를 1111로 정하여 생성
var one=new person("se2n","1111");
//정보를 알아내기
alert( "id : "+one.getId()+", pwd : "+one.getPassword() );
//비밀번호를 222로 변경
one.setPassword("2222");
//정보를 알아내기
alert( "id : "+one.getId()+", pwd : "+one.getPassword() );
</script>
위는 사용자의 아이디와 비번을 지정하여 해당정보를 읽어오는 스크립트의 전체 소스입니다.
function person(id,password)
{
this.id=id;
this.password=password;
}
이 부분이 사실 함수를 선언하는 방법이지만요, 하나의 클래스를 선언하려는 첫번째 방법이지요.
이렇게 선언된 함수에 살을 붙여서 클래스 형식으로 변모시키는 것이 이번에 다룰 내용입니다.
(C++ 과 Java 에 익숙하신 분은 조금 혼동이 될 듯하니 그냥 그러려니 하시는게 맘 편합니다)
person.prototype={
........ , ........ , ........
}
클래스에 살을 붙이는 방법입니다.
prototype 이라는 속성은 사용자가함수를 추가하여객체에 포함시킨다는 의미를 갖습니다.
즉 ....... 이 부분에는 사용자가메소드를 기술하는 곳입니다.
*C++ 에서는 이를 클래스의 멤버함수라고 하여 이하 멤버함수로 통일합니다
멤버함수를 적는 방법은 JSON 의 선언 방식과 같습니다.
http://cafe.naver.com/ArticleRead.nhn?clubid=10581070&menuid=43&boardtype=L&page=&articleid=349
person.prototype={
getId:function()
{
return this.id;
},
setId:function(id)
{
this.id=id;
},
getPassword:function()
{
return this.password;
},
setPassword:function(password)
{
this.password=password;
}
}
위는 getId , setId, getPassword, setPassword 의 멤버함수를 선언하여 기술하였습니다.
처음 선언하였던 person 클래스에4 개의 멤버함수라는살을 덧붙이게 된 것입니다.
객체의 일부분으로사용할 수 있지요.
JSON에 대해 알아두시면 굳이 설명하지 않아도 될 듯 싶습니다만,
JSON에 대해 몰라도 함수의 이름 뒤 :funtion(parameter1, parameter2, ... ) 의 형태로 사용됨을 알아두시면 됩니다.
중요한 것은 다음 멤버함수를 추가하려면 콤마( , )로 구분해줘야 합니다.
person.prototype={
getId:function()
{
return this.id;
},
setId:function(id)
{
this.id=id;
},
getPassword:function()
{
return this.password;
},
setPassword:function(password)
{
this.password=password;
}
}
멤버함수의 이름 뒤에 :function(매개변수1,매개변수2,..) 형식으로 붙는건
그것이 함수라고 선언해주는 것이니까 그런가보다 하시면 됩니다 ^_^
var one=new person("xxx","yyy");
으로 객체를 선언하였다면, one.getId() 나 one.setId("zzz") 등의 형식으로 사용하면 됩니다 ^^
'JavaScript' 카테고리의 다른 글
prototype.js을 위한 개발자 노트 - 2 객체에 이벤트 주는 스크립트 있음 (0) | 2007.04.12 |
---|---|
prototype.js 를 위한 개발자 노트 (1) | 2007.04.12 |
js로 문자열 자르기, 바이트 구하기 (0) | 2007.03.31 |
2차 완성된 DHTML 을 이용한 클라이언트 스크립트로 Element 생성 (0) | 2007.03.31 |
자바스크립트로 클래스 만들기 (0) | 2007.03.31 |