Js
프로토 타입 , 클래스, 인스턴스
수찌얌
2023. 3. 9. 21:02
프로토타입 (prototype)
- 객체의 원래 상태
- 같은 생성자로부터 생성된 객체는 프로토타입을 공유
- 메모리 절약
1. 자바스크립트 내에 존재하는 생성자함수는
암시적으로 프로토타입 존재
ex) Array()
2. 직접 생성한 생성자함수에서 만든 함수를
공통으로 사용할 경우
명시적으로 프로토타입 생성해야 됨
ex) Info()
프로토타입 체인
최 상위 객체 = null
클래스 (Class)
- 객체를 생성하기 위한 틀, 객체X
- 클래스 안에 데이터 X
- 메모리에 올라가지 X
클래스 사용
Getter
- 프로퍼티 값을 가져오기 위한 함수
Setter
- 프로퍼티 값을 설정하기 위한 함수
get 함수명() {
return this._변수명;
}
set 함수명(value) {
this._변수명 = value;
}
class Info {
//생성자
constructor({name, age}) {
this.name = name;
this.age = age;
console.log(this.name);
}
//getter, setter시 _붙임
//getter
get name() {
return this._name;
}
//setter
set name(value) {
this._name = value;
}
//함수
write() {
return `이름은 ${this.name}, 나이는 ${this.age} 살`;
}
}
//클래스 선언
let info = new Info({name:"홍길원", age: 31});
console.log(info.name);
// info.name = "홍길삼";
// console.log(info.name);
Private 프로퍼티
- 외부 접근 불가능
- Class안 에서만 사용, 변경 가능
Public 프로퍼티
- 외부 접근 가능
- Class 외부에서 사용, 변경 가능
Private 프로퍼티
- 변수 앞에 # 붙임
Public 프로퍼티
- 변수 앞에 # 안붙임
class Info {
publicValue = "50kg";
#privateValue = "홍길순";
}
인스턴스 (Instance)
- 클래스나 프로토타입을 이용하여 만든 것
- 프로퍼티와 메소드를 상속 받음
- 클래스로 만든 객체