오늘 내가 배운 것
1. 정적 메서드 'static'
2. 접근 제어자 'Private'
3. sequelize를 이용한 테이블 만들기
1. 정적 메서드 'static'
정적 메서드는 클래스 선언 안에 있고, 앞에 'static'이라는 키워드가 붙는다.
static staticmethod(){}
기본 사용 예시
class User {
static staticmethod() {
console.log(this === User)
}
}
User.staticmethod() // true 출력
// 정적 메서드는 인스턴스화 되면 호출할 수 없다.
const user = new User()
user.staticmethod() // Error
정적메서드 사용 및 주의사항
정적메서드는 인스턴스 생성 후에 사용할 수 없다.
class Math {
static square(x) {
return x * x
}
}
console.log(Math.square(2)) // 4
객체를 생성할 필요 없이, 클래스명.메서드명 형식으로 정적메서드를 호출할 수 있다.
Math 클래스를 아래 코드를 이용해서 인스턴스화 할 수 있다.
const math = new Math()
math라는 객체가 생성되었으며, 이 객체는 클래스의 프로퍼티와 메서드를 사용할 수 있다
하지만, Math 클래스는 정적 메서드만 정의되어 있기 때문에 인스턴스를 생성하면 아무것도 할 수 없다.
정적메서드를 사용하기 위해서는 클래스명.메서드명 을 사용해야 한다.... Math.square()
console.log(math.squar(2)) // Error
객체로 만든 math를 이용하여 정적메서드를 호출하게 되면, 에러를 발생한다.
에러가 발생하는 이유는 math라는 객체는 Math 클래스를 인스턴스화해서 생성되었으며,
이 클래스에는 square라는 메서드가 정의되어 있지 않다.
2. 접근 제어자 'Private'
클래스 내부에서 프로퍼티나, 메서드에 '#'을 붙이면 클래스 외부에서 액세스 할 수 없는 상태로 선언할 수 있다.
기본 사용 예시
//ex 1
class MyClass {
#privateProperty = "value"
#privateMethod() {
// code
}
}
private 사용하기
//ex
class MyClass {
#privateProperty = 180
privateMethod() {
console.log(this.#privateProperty + "cm")
}
}
const instance = new MyClass()
instance.privateMethod() // 180cm
console.log(instance.#privateProperty) // Error
에러 발생 이유는 privateProperty는 프라이빗 식별자를 포함하기 때문에 "MyClass" 클래스 외부에서 엑세스 할 수 없다
3. sequelize를 이용한 테이블 만들기
sequelize를 이용한 테이블 만들기
자세한 코드는 깃허브를 확인해 주세요.
Github
https://github.com/100space/202301/tree/main/230111-2
'시작 > TIL(Today I Learned)' 카테고리의 다른 글
230113 - Javascript - Sequelize, ERD 활용 페어코딩 (0) | 2023.01.16 |
---|---|
230112 - Javascript - Sequelize 테이블 만들기 , SQL 테이블 만들기 , SQL-JOIN, Sequelize-Join, NodeJS (0) | 2023.01.15 |
230110 - JavaScript - NodeJS, TDD, ORM, Sequelize 모듈 (0) | 2023.01.10 |
230109 - JavaScript - class 클래스와 상속 (0) | 2023.01.09 |
230106 - JavaScript - module, 모듈화 하기 (0) | 2023.01.09 |
댓글