자바스크립트로 객체지향 구현이 가능할까요?
제가 알고있는 한도내에서 자바스크립트의 객체지향 기능에 대해서 설명해보겠습니다.
자바스크립트는 클래스를 함수로써 표현합니다. 그럼 일반 함수와 클래스를 어떻게 구분하냐구요?
--클래스 --
function classOne(){
this.name = \"켁큇\";
this.age = 20;
}
--일반 함수--
function foo(){
alert(\"뿌우~~\");
}
두 개의 차이점이 보이시나요?
function 키워드블록 안에 \"this\" 라는 키워드가 존재하면 \"아 이것은 클래스이구나\" 하고 자바스크립트 파서(브라우저)가 알아먹게 됩니다.
클래스를 만드는법을 알았으니 객체를 만들어보죠.
var obj = new classOne();
자 객체가 만들어졌네요
obj 객체의 멤버변수는
obj.name
obj.age
이렇게 . 을 찍고 접근 하시면됩니다.
그럼 classOne에 메서드는 어떻게 정의해야할까요?
function classOne(){
this.name = \"켁큇\";
this.age = 20;
this.myFunction=function(){
alert(\"나는 켁큇임\");
}
}
이렇게 정의를 합니다.
호출은
new classOne().myFunction();
이렇게 하면됩니다.
이런식으로 class 블락내에 function을 선언해도 되지만,보통은
prototype 이라는 속성을 이용해서 함수를 클래스내에 때려박습니다.
내일은 통계학 시험이 있는 관계로 prototype의 대한 설명은 다음글에서 다루도록 할께요.
님이 그 유명한 MD5 최약체 지존?
네 이사람이 최약체입니다.