JavaScript Class를 조금 더 자세히 공부해보았다.
const myCat = new Cat("Nabi", 8);
constructor()
class Cat {
constructor(name, age) {
this.name = name;
this.age= age;
}
}
→ Cat은 Class의 이름이다. Class이름은 PascalCase로 작성한다.
→ Cat class의 instance를 생성할 때 마다 constructor()
메소드가 호출된다.
→ constructor()
메소드는 name, age 두개의 인자(argument)를 받는다.
→ class의 실행범위에서 this는 해당 instance를 의미한다.
→ 인자로 넘어온 name과 age를 사용해 instance의 name과 age 프로퍼티에 값을 할당한다.
→ 클래스 내에서 name, age와 같이 변경 가능한 상태값이자 class 내 어느곳에서나 사용할 수 있는 변수를 멤버변수라고 한다.
→ 멤버변수는 this 키워드로 접근한다.
const cat1 = new Cat("darcy", 2);
console.log(cat1); // Cat {name: 'darcy', age: 2}
console.log(cat1.name); //darcy
console.log(cat1.age); //2
class Cat {
constructor(name, age) {
this.name = name;
this.age= age;
}
changeName(newName){
this.name = newName;
}
}
const cat2 = new Cat("noNameYet", 3);
console.log(cat2); //Cat {name: 'noNameYet', age: 3}
console.log(cat2.name); // noNameYet
console.log(cat2.age); // 3
cat2.changeName("Nabi");
console.log(cat2); // Cat {name: 'Nabi', age: 3}
console.log(cat2.name); // Nabi
→ Cat 객체에 changeName 메소드를 추가했다.