자바스크립트로 객체지향 구현이 가능할까요?

제가 알고있는 한도내에서 자바스크립트의 객체지향 기능에 대해서 설명해보겠습니다.

자바스크립트는 클래스를 함수로써 표현합니다. 그럼 일반 함수와 클래스를 어떻게 구분하냐구요?

--클래스 --

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의 대한 설명은 다음글에서 다루도록 할께요.