class person {
name; // 속성 (fields)
age; // 속성 (fields)
speak(); //행동(methods)
}
ex) age가 마이너스면 말이 안되기 때문에 젠틀하게 고쳐주거나 알려줄 때 사용함
class User {
constructor(firstName, lastName, age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age; //age는 getter의 age를 불음
/*get : 값 반환*/
get age() {
return this._age; //this.age라고 쓸 수 있지만 그렇게 되면 set에서 무한정으로 value값이 도출되기 때문에 _를 사요앟ㅁ
}
/*set : 값 설정*/
set age(value){
this._age = value < 0 ? 0 : value; //0보다 작으면 0으로 써주거라
}
}
const user1 = new User('Steve', 'Job',-1);
console.log(User.age); // 0
class Experiment {
publicField = 2; //public
#privateField = 0; // private으로 #을 붙이면 됨 (class 외부에서 사용 불가)
}
const experiment = new Experiment();
console.log(experiment.publicField); //2
console.log(experiment.privateField); //undefined
기초 : 클래스와 메소드들은 새로운 object를 만들때마다 고대로 복제되고 값만 우리가 지정한대로 변경되어 만들어짐