인스턴스 : 설계도로 만들어진 실체
예시)
class Ex {
constructor (exParam) {
this.exVal = exParam
}
showExVal() {
console.log(this.exVal)
}
}
let exUser = new Ex('hi')
exUser.showExVal()
// hi
class에서 기초정보를 세팅하는 '생성자함수'로 하나의 class에는 하나의 constructor가 존재한다. 객체를 new로 생성할 때 가장 먼저 자동으로 호출된다.
위의 Ex클래스(설계도)의 인스턴스를 생성하는 방법은 아래와 같다. 인스턴스라는 말이 어렵게 느껴지는데 그냥 Ex클래스를 다른이름으로 사용한다고 생각하면 쉽다.
인스턴스를 생성할 때 Ex(값)을 입력하면 constructor가 받아서 정의한다.
let exUser = new Ex('hi')
exUser.showExVal()
get set을 사용하는 이유:
예시)
class Ex {
constructor (exParam) {
this.exVal = exParam
}
showExVal() {
console.log(this.exVal)
}
set exVal () {
this.exVal = value
}
get exVal () {
return this.exVal
}
}
let exUser = new Ex('hi')
exUser.showExVal()
! 여기서 주의 해야할 것은 this.exVal을 그대로 써주면 무한재귀(무한루프)에 걸리수 있다. 예를 들어 set을 정의한 후
constructor에 값을 정의 할때 this.exVal = exParam가 내부의 set exVal을 호출시킨다. set exVal()에서 this.exVal = value하여 constructor로 정의 하려고 하면 또 constructor가 set exVal을 호출시키기 때문에 무한 루프에 빠지게 된다.
this.변수의 변수 앞에 를 붙인다.
=> this. exVal
해당 인스턴스내에서만 쓰이기 위한 변수로 분리하는 것으로
겹치는 현상을 없애준다.