자바스크립트를 클래스화 시키는 방법에 대해 적어볼까 합니다.

사실 자바스크립트 자체가 워낙 문법에 엄격하지 않다보니

객체지향(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") 등의 형식으로 사용하면 됩니다 ^^

Posted by 퓨전마법사
,