자 일단 말로 풀어보자. 제목 그대로다. class를 정의할 때, 그 클래스의 사용자가 저지를 수 있는 실수를 미리 방지하는 코드를 넣을 수 있다. 그런 실수 중 하나가 길이 값을 클래스의 파라미터로 넣어야 하는데 음수를 넣는 경우다. 길이 값은 음수가 될 수 없다.
그럼에도 불구하고 누군가가 실수로 음수를 넣었을 때, 콘솔창에 오류가 뜨도록 할 수 있다. 코드를 보자.
class Square {
constructor (length) {
if (length <= 0) {
throw '길이는 0보다 커야 합니다.'
}
this.length = length
}
getPerimeter () { return 4 * this.length }
getArea () { return this.length * this.length }
}
// 클래스 사용하기
const square = new Square(-10)
console.log(`정사각형의 둘레: ${square.getPerimeter()}`)
console.log(`정사각형의 넓이: ${square.getArea()}`)
square 클래스의 파라미터로 -10을 넣었다. 이 경우 -10을 넣고 저장을 누르는 순간부터 콘솔창에는 Uncaught 에러가 빨갛게 뜨기 시작한다.
아래쪽 console.log 를 치지 않아도 말이다. 참고로 알아두면 좋을 것 같다.
'자바스크립트 리뷰' 카테고리의 다른 글
클래스 정의시 넣은 #length 같은 실수방지 코드의 단점과 그 해결책 (0) | 2023.04.06 |
---|---|
class 정의시 사용자 실수방지 코드를 넣었음에도 사용자가 메서드까지 써서 굳이 실수할 때는? [혼공자 9-2-7] (0) | 2023.04.06 |
class 에서 속성(키)과 메소드 상속받기 : extends (0) | 2023.04.06 |
class로 객체와 그 객체에 대한 메소드 만들기 [혼공자9-1-8] (0) | 2023.04.05 |
함수로 객체 찍어내기(판화 찍어내듯이) [혼공자 9-1-5] (0) | 2023.04.05 |