조금 더 연관있는 데이터를 한곳에 묶어놓는 컨테이너같은 역할
const student1 = {
name: 'alice',
age: 26
}
const student2 = {
name: 'lucy',
age: 15
}
이런 방식으로 코드를 짰을 경우 student
의 정보가 많아지면 불필요하게 코드가 길어진다.
이렇게 비슷한 Object
를 많이 만들일이 있다면 Class
를 만들어 쓰는게 효율적이다.
Class
는 Object
를 뽑아내는 기계라고 이해하면 쉽다.
function 기계(){
this.student = 'alice';
// 새로 생성되는 object에 {student : 'alice'} 를 추가해줘
this.age = 26;
// 새로 생성되는 object에 {age : 26} 을 추가해줘
}
const student1 = new 기계()
// console.log(student1)
// -> 기계 {student : "alice", age: 26}
this -> 기계로부터 생성되는 Object들 (= 주로 instance 라고 한다.)
여기서 발생하는 문제점:
-> 그러면 계속 똑같은 Object들만 생성되지 않나?
해결책:
-> 파라미터 삽입
class 기계(구멍){
this.student = 구멍;
}
const student1 = new 기계('jack')
// console.log(student1)
// -> 기계 {student : "jack"}
⬇️⬇️⬇️
⬇️⬇️⬇️
Class
를 이용해서 실제 데이터를 넣어서 만드는 것
Class
를 이용해서 새로운 instance를 생성하면 Object가 된다.
class Person {
// constructor 생성자 -> object를 만들 때 필요한 데이터 전달
constructor(name, age) {
// fields
this.name = name;
this.age = age;
}
// methods
speak() {
console.log(`%{this.name}: hello!`);
}
}
const ellie = new Person('ellie', 20);
console.log(ellie.name);
// ellie
console.log(ellie.age);
// 20
ellie.speak();
// ellie: hello!