해결된 질문
작성
·
183
1
답변 1
0
Object의 경우와 달리 배열 클래스의 static 멤버는 말그대로 'static'한 목적을 지닌 경우에 해당한다고 볼 수 있습니다.
예컨대 Array.isArray 메서드의 경우, 인자로 임의의 타입의 데이터를 넘기면 해당 인자가 배열인지 여부를 판단하여 true / false를 반환합니다. 이런 메서드를 배열의 prototype에 지정하는 건 의미가 없겠죠. 이미 배열인데 굳이 배열인지 아닌지를 판단할 이유가 없으니까요.
즉 인스턴스 자체가 '주체'가 되는게 합리적일 때는 prototype 메서드로 지정하지만, 인스턴스에 종속되는 것보다 클래스 자체를 주체로 삼는 것이 보다 합리적인 경우에는 static 메서드로 지정하는 것입니다.