인터페이스(Interface)와 추상 클래스(Abstract class)
추상 클래스와 인터페이스는 선언만 있고 구현 내용이 없는 클래스다.
따라서 인터페이스와 추상 클래스를 가지고 새로운 인스턴스(객체)를 생성할 수 없다.
추상 클래스를 extends로 상속받아 구현한 자식 클래스나
인터페이스를 implements하고 구현한 자식 클래스만이 객체를 생성할 수 있다.
strong > soft > weak > (phantom ?) > unreachable
오른쪽으로 갈수록 GC의 수거 대상 확률이 높아진다.
총 3가지에 대해 알아보자.
prototype, constructor, __proto__
Array.prototype은 객체이다.
그렇기 때문에 Object 생성자 함수에 new 연산자로 생성된 인스턴스라는 말이다.
따라서 Object의 prototype을 상속받게 된다.