간단하게 예를 들기위해 지난번에 만들어진 Square 클래스를 줄이도록 하겠다
<script>
//만들어진 Square 객체의 개수를 알고 싶을 때
class Square {
constructor (r) {
}
}
new Square() //1번
new Square() //2번
</script>
기본적인 방법으로는 클래스 안에 count 변수를 만들어
생성자가 호출되는 시점에 count가 증가하도록 만들면 된다
let count = 0
class Square {
constructor (r) {
count += 1
}
}
console.log(count) -> 0
new Square()
new Square()
console.log(count) -> 2
그러나 클래스의 종류가 많아지게 되면 count가 어떤 클래스의
횟수를 세는지 알기 어려워진다
그래서 앞에 클래스의 이름을 붙이고 . 을 써서 사용을 하면 된다
클래스의 이름을 써야하기 때문에 코드는 클래스 뒤에 써야한다
<script>
class Square {
constructor (r) {
Square.count += 1
}
}
Square.count = 0
console.log(Square.count) -> 0
new Square()
new Square()
console.log(Square.count) -> 2
</script>
또한 Square.function() { } 과 같이 함수도 만들 수 있다
근데 이렇게 class 내부에 있지 않고 밖에 있다보니 헷갈릴 수도 있어서
class 내부에 작성할 수 있기를 원했다
그것이 static 이다
<script>
class Square {
static count = 0
static test () { }
constructor (r) {
Square.count += 1
}
}
console.log(Square.count)
new Square()
new Square()
console.log(Square.count)
</script>
이런식으로 static을 앞에 붙이면 클래스. 으로 사용할 수 있는 것이다