자바스크립트에는 클래스의 개념이 존재하지 않는다**.** 따라서 프로토타입을 활용하여 클래스와 유사한 기능을 구현한다.

Array를 new 연산자와 함께 호출하면 인스턴스가 생성된다.

Array를 일종의 클래스라고 하면 Array의 prototype 객체 내부 요소들이 인스턴스에 상속된다와 같은 개념이다. 인스턴스에 상속되는지 여부에 따라 스태틱 멤버와 인스턴스로 나뉜다. 클래스 기반 언어와는 달리 자바스크립트에서는 인스턴스에서도 직접 메서드를 정의할 수 있는데 이를 **프로토타입 메서드(prototype method)**라고 한다.

간단히 말하면

인스턴스에서 바로 호출할 수 있는 메소드가 프로토타입 메소드

접근할 수 없으면 스태틱 메소드

일반적인 사용 방식, 즉 구체적인 인스턴스가 사용할 메소드를 정의한 틀의 역할을 담당하는 목적을 가질 때 클래스는 추상적 개념이다. 클래스 자체를 this로 해서 직접 접근해야하는 스태틱 메서드를 호출할 때 클래스는 그 자체가 하나의 개체로 취급된다.