자바스크립트는 프로토타입 기반의 언어
클래스라는 것은 없으며 객체는 복제 과정을 통해 생성
딕셔너리를 이용해서 메모리 상에서 객체 속성의 위치를 찾아내는 건 비효율적
V8에서는 hidden classe이용
고정 객체 레이아웃과 유사하게 작동하는데 다만 런타임에 생성된다는 차이점
function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(1, 2);



어떤 객체에 새로운 속성이 추가될 때마다 오래된 히든클래스는 새로운 히든 클래스에 대한 전환 경로로 업데이트됩니다
function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(1, 2); p1.a = 5; p1.b = 6; var p2 = new Point(3, 4); p2.b = 7; p2.a = 8;
속성 할당 순서 다르면 다른 히든클래스 사용하므로 맞춰주자
히든클래스 전환이 중요한 이유
- 히든 클래스가 같은 방식으로 생성된 객체들 사이에 공통으로 사용
- 최적화 코드도 모두 동일


