728x90
300x250
프로토타입 기반의 클래스는 생성자 함수와 프로토타입 객체를 사용하여 정의된다. 생성자 함수는 클래스의 초기화를 담당하고, 프로토타입 객체는 클래스의 메서드와 속성을 포함한다.
문법
function 클래스이름() {
this.프로퍼티1=초깃값;
this.프로퍼티2=초깃값;
...
}
클래스이름.prototype.메서드=function(){
...
}
프로퍼티 정의는 함수방식과 동일하게 this를 사용하고 메서드를 정의할때는 prototype이라는 프로퍼티에 정의 하는 구조이다.
프로토타입 클래스 예제
//생성자 함수
function Person(name, age) {
this.name = name;
this.age=age;
}
//프로토타입 메서드
Person.prototype.sayHello = function(){
console.log("안녕하세요! 저는"+this.name+"입니다.");
};
Person.prototype.getAge=function(){
return this.age;
}
//객체 인스턴스 생성
var person1 = new Person("John", 25);
var person2 = new Person("jane", 32);
//메서드 호출
person1.sayHello(); //안녕하세요! 저는John입니다.
console.log(person2.getAge()); //32
생성자 함수 정의 방법
생성자는 주로 프로퍼트 생성 및 객체 정보나 상태를 초기화 하는 메서드를 호출한다.
function 클래스이름(){
초기화 작업
}
프로퍼티 정의 방법
function 클래스이름(){
this.프로퍼티1 = 초깃값;
this.프로퍼티2 = 초깃값;
}
메서드 정의 방법
클래스이름.prototype.메서드1=function(){};
클래스이름.prototype.메서드2=function(){};
인스턴스 생성 방법
var 인스턴스 = new 클래스이름();
객체 외부에서 프로퍼티와 메서드 접근방법
인스턴스.프로퍼티1;
인스턴스.메서드1();
객체 내부에서 프로퍼티와 메서드 접근 방법
function 클래스이름(){
this.프로퍼티1 = 초깃값;
this.프로퍼티2 = 초깃값;
}
클래스이름.prototype.메서드1=function(){
alert(this.프로퍼티1);
this.메서드2();
};
클래스이름.prototype.메서드2=function(){};
var 인스턴스 = new 클래스이름();
728x90
반응형
'javaScript' 카테고리의 다른 글
class에서 this (0) | 2023.08.05 |
---|---|
db연결된 태그 영문과 한글 글자 간격 다르게 적용 (0) | 2023.08.03 |
함수 방식 클래스 (0) | 2023.06.14 |
오브젝트 리터럴 클래스로 매개변수 전달하기 (0) | 2023.06.08 |
클래스 기본 개념 정리 (0) | 2023.06.01 |
댓글