sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | http://1 |
extra_vars4 | ko |
extra_vars5 | http://cafe.naver.com/swnara/50 |
extra_vars6 | sitelink1 |
Javascript로도 class를 만들 수 있다.
우선, class에 대해서 아주아주 간단히 짚어 보자.
1) class는 생성자를 갖는다.
예를 들어, Array를 보도록 하자.
var arr = new Array();
Array는 객체다. Array를 사용하기 위해서는 new Array()라는 형태로 생성해 주어야 하는데
이 때, Array()처럼 class명과 동일한 이름의 함수를 생성자라고 한다.
2) class는 member변수를 갖는다.
var arr = new Array();
alert( arr.length ); -> '0'을 출력해 줄것이다.
위에 보이듯이 arr.length의 length는 Array의 member변수이다.
3) class는 method를 갖는다.
method는 function을 말하며, Array의 경우
var arr = new Array();
alert( arr.toString() );
처럼, toString()이라는 method를 갖는다.
그럼, 이제 간단한 class를 만들어 보도록 하자.
지금부터 만들 class는 두개의 숫자를 입력받아 그 합을 출력하며,
그 합을 member변수에 기억시켜두는 기능을 갖고 있다.
1) 1번째 방법
var Class1 = function() // 생성자
{
// member변수
this.sum = 0;
};
Class1.prototype.add = function( a, b ) // method add()
{
this.sum = a + b;
return this.sum;
};
2) 2번째 방법
function Class1()
{
// member변수
this.sum = 0;
// method
this.add = addNum;
}
function addNum( a, b )
{
this.sum = a + b;
return this.sum;
}
3) 3번째 방법
// 개인적으로 이 방법이 제일 맘에 든다.
소개한 3가지 방법은 내부적으로 중요한 차이점이 있다. 이를 이해하기 위해서는 prototype 과 construct 에 대해서 학습해야 한다.
function Class1()
{
// private 변수
var m_sum = 0;
// public 변수 및 method
this.sum = 0;
this.add = addNum;
// private method
function addNum( a, b )
{
m_sum = a+b;
this.sum = m_sum;
}
}
4) 사용예
var sam = new Class1();
sam.add(11, 22) );
alert( "" + sam.sum ); // "33" 출력
이상, 별문지기(www.swnara.com) 였습니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
46 | Object 와 Prototype | 황제낙엽 | 2008.08.08 | 292 |
45 | [펌]자바스크립트에서 객체 생성 방법 | 황제낙엽 | 2008.08.07 | 313 |
» | [펌]JavaScript Class 만들기 | 황제낙엽 | 2008.08.07 | 325 |
43 | [펌]Function과 객체, this 키워드의 관계 | 황제낙엽 | 2008.08.07 | 284 |
42 | 자바스크립트의 데이터 타입과 변수 | 황제낙엽 | 2008.08.06 | 470 |
41 |
[펌]객체지향 자바스크립트
![]() | 황제낙엽 | 2008.08.06 | 296 |
40 | [펌]사용자 정의 클래스 생성 및 common library 의 개념. | 황제낙엽 | 2008.08.06 | 261 |
39 | 라이노 (Rhino) 관련 링크 모음 | 황제낙엽 | 2008.07.21 | 381 |
38 | Rhino scopes and contexts 에 대한 문서 | 황제낙엽 | 2008.07.18 | 389 |
37 |
동적인 언어를 동적으로 호출하기
![]() | 황제낙엽 | 2008.07.14 | 272 |
36 | How to use Rhino to script Java classes. | 황제낙엽 | 2008.07.14 | 465 |
35 | Java 버전의 JavaScript 엔진 라이노 (Rhino) | 황제낙엽 | 2008.07.14 | 456 |
34 |
SpiderMonkey 를 이용한 개발 일기
![]() | 황제낙엽 | 2008.07.14 | 263 |
33 | JSAPI User Guide | 황제낙엽 | 2008.07.14 | 408 |
32 | State of ECMAScript 4 ('07 12) | 황제낙엽 | 2008.07.14 | 404 |
31 | SpiderMonkey와 Tamarin | 황제낙엽 | 2008.07.14 | 401 |
30 | URL 리다이렉트 (redirect) | 황제낙엽 | 2008.04.18 | 407 |
29 | 감추기, 보이기 화면 예제 | 황제낙엽 | 2008.04.14 | 488 |
28 |
Date객체 - 날짜구하기
![]() | 황제낙엽 | 2008.02.19 | 316 |
27 | JavaScript TDD by 강규영 | 황제낙엽 | 2007.11.26 | 467 |