* 자바스크립트는 객체 지향 언어로써 객체를 생성 할수 있다. 엄밀 하게 말하면 프로토타입 베이스의 객체지향이라고 한다.
* 예제로써 알아보겠다.
var Memeber = function(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
this.getName = function(){
return this.lastName + ' ' + this.firstName;
}
};
var mem = new Memeber('요시히로', '야마다');
document.writeln(mem.getName());
* 우리가 아는 Java에서는 모든 클래스가 동일하면 동일한 멤머 변수와 동일한 멤머 메소드를 가진다. 하지만 그것은 클래스베이스 객체지향에서 그렇지만 프로토타입 베이스 객체지향에서는 그렇지 않다.
* 멤버 메소드 추가 및 삭제
var Memeber = function(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
};
var mem = new Memeber('요시히로', '야마다');
mem.getName = function(){
return this.lastName + ' ' + this.firstName;
}//멤버메소드 추가
document.writeln(mem.getName());
delete mem.getName;
document.writeln(mem.getName());
* 프로토타잎 메소드 선언.
** 객체 안에는 단지 프로토타잎 메소드만 존재하고 실제 메소드는 생성자(자바로 말하면 클래스라고 할수 있겠다.)에 있는것을 공유 하는 형태.
*** 이렇게 함으로써 메모리의 사용량을 절감 할수 있다. : 모든 객체에 메소드를 복사 하지 않고 참조 함으로써 메모리 절감.
*** 멤버의 추가나 변경을 인스턴스가 실시간으로 인식한다.
var Memeber = function(firstName, lastName){
this.firstName = firstName;
this.lastName = lastName;
};
var mem = new Memeber('요시히로', '야마다');
Memeber.prototype.getName = function(){
return this.lastName + ' ' + this.firstName;
};//프로토 타잎 메소드 추가
//여러개인 경우 아래 리터럴 사용법을 사용한다. 왜냐면 이쁘니깐 ^------^
Memeber.prototype = {
getName2 : function(){...},
getName3 : function(){...},
getName4 : function(){...}
};
Memeber.prototype.getName = function(){
return this.lastName + ' ' + this.firstName;
}//프로토 타잎 메소드 추가
document.writeln(mem.getName());
'WEB의 속삭임 > Client단의 외침' 카테고리의 다른 글
[JavaScript][객체][프로토타입 체인] 자바스크립트의 상속! (0) | 2014.07.28 |
---|---|
[JavaScript][클로저]JavaScript의 Closure (0) | 2014.07.20 |
[JavaScript][정규식]정규식을 사용하여 URL 체크 (0) | 2014.06.08 |