class Milk {
taste; //외부로 부터 받아옴(생략가능)
emoji; //외부로 부터 받아옴(생략가능)
type = "우유"; //클래스가 만들어지자 마자 우유로 초기화가 됨
// 생성자
constructor(taste, emoji) {
this.taste = taste;
this.emoji = emoji;
}
display(){
console.log(`${this.taste}: ${this.emoji}`);
}
}
const choco = new Milk('chocolate', '🍫');
console.log(choco);
인스턴스를 만들 때 초기화가 되어야 되는 것이라면 constructor 위에 생성자 밖에서 설정할 수 있다.
const choco = new Milk('chocolate', '🍫');
외부에서 변경이 불가능하게 만들고싶다?
내부상으로 필요한 데이터를 외부에서 보이지 않도록 숨겨놓는다.
일반적으로 아무것도 붙이지 않은 코드는 public이고,
앞에 #을 붙이면 private가 된다.
class Milk {
#taste; //외부로 부터 받아옴(생략가능)
#emoji; //외부로 부터 받아옴(생략가능)
#type = "우유"; //클래스가 만들어지자 마자 우유로 초기화가 됨
// 생성자
constructor(taste, emoji) {
this.#taste = taste;
this.#emoji = emoji;
}
display(){
console.log(`${this.#taste}: ${this.#emoji}`);
}
}
const choco = new Milk('chocolate', '🍫');
console.log(choco);
#을 붙여서 private하게 만들게 되면 console.log에서 내용이 나오지 않게 된다.
class Milk {
#taste; //외부로 부터 받아옴(생략가능)
#emoji; //외부로 부터 받아옴(생략가능)
#type = "우유"; //클래스가 만들어지자 마자 우유로 초기화가 됨
// 생성자
constructor(taste, emoji) {
this.#taste = taste;
this.#emoji = emoji;
}
display(){
console.log(`${this.#taste}: ${this.#emoji}`);
}
}
const choco = new Milk('chocolate', '🍫');
choco.#name = '복숭아';
console.log(choco);
#feild는 외부에서 접근이 불가능 하다고 에러가 난다.