안녕하세요.
이번에는 객체를 생성할 때 사용하는 클래스를 간단하게 사용해보겠습니다.
자세한 내용은 다른 글을 참조하시기 바랍니다.
- 클래스
- 객체를 생성하기 위한 템플릿
ex)
객체 : 고양이
속성 : 이름 – 나비
나이 – 1살
메소드 : mew() – 울다, eat() - 먹는다
자동차를 예시로 들어보겠습니다.
먼저 Car 라는 클래스를 생성합니다.
constructor() 함수는 Car 클래스를 만들었을 때 기본적으로 가지게 되는 설정 값이라고 보면 됩니다.
여기서는 constructor(color) 함수 안에 color, isDoor를 설정해놨습니다.
isDoor는 true로 값이 설정되어 있지만, color는 인자 값으로 받아서 데이터를 저장하는 것을 볼 수 있습니다.
추가로 move() 함수, stop() 함수가 설정되어 있고, returnColor() 함수로 설정된 자동차 색을 반환해주는 함수도 있는 것을 볼 수 있습니다.
그리고 만든 클래스를 module로 내보낼 수 도 있습니다.
class Car {
constructor(color) {
this.color = color;
this.isDoor = true;
}
move() {
console.log('움직인다');
}
stop() {
console.log('멈춘다.');
}
returnColor() {
return this.color;
}
}
module.exports = { Car };
먼저 js 파일을 2개 만들어서 각각 데이터를 입력합니다.
t1.js
class Car {
constructor(color) {
this.color = color;
this.isDoor = true;
}
move() {
console.log('움직인다');
}
stop() {
console.log('멈춘다.');
}
returnColor() {
return this.color;
}
}
module.exports = { Car };
t2.js
const { Car } = require('./t1.js');
console.log('Car : ', Car);
var car1 = new Car('red');
var car2 = new Car('blue');
var car3 = new Car('yellow');
// new Car()을 하여 생성하게되면 constructor() 이 기본적으로 생성됨
// 현재 Car() 클래스의 constructor(color)에는 color 이라는 파라미터 값을 받기 때문에
// 생성할 때 필요한 값을 추가로 입력해줘야 한다.
console.log('car1 color: ', car1.returnColor());
console.log('car2 color: ', car2.returnColor());
console.log('car3 color: ', car3.returnColor());
t1.js에서 만든 Car 클래스를 t2.js 에서 require 함수로 불러와서 사용하고 있습니다.
t2.js 함수를 실행하면 다음과 같이 결과를 볼 수 있습니다.
여기서 car1, car2, car3 만들 때 new Car(); 를 사용하고 있습니다.
이때 new Car()를 사용해서 생성하게되면 Car 클래스의 constructor()이 기본적으로 생성이 됩니다.
Car 클래스의 constructor() 함수의 경우에는 color 값을 인자 값으로 받기 때문에
new Car(’색’) 의 방식으로 사용을 해야 합니다.
각 변수에 color를 설정하여 생성하고 콘솔로 returnColor 함수를 호출하면 저장된 색을 확인할 수 있습니다.
감사합니다.
'Node' 카테고리의 다른 글
[Node.js] 프로미스(Promise)에 대하여 알아보기 (0) | 2023.02.09 |
---|---|
[Node.js] Callback Function(콜백 함수)에 대하여 알아보기 (0) | 2023.02.08 |
[Node.js] 구조분해에 대하여 알아보기 (0) | 2023.02.06 |
[Node.js] 실습코드 (0) | 2023.02.04 |
[Node.js] Node.js의 OS, Path 모듈에 대하여 알아보기 (0) | 2023.02.04 |