호이스팅
함수 내에서 아래쪽에 존재하는 내용 중 필요한 값을 끌어올리는 것
코드의 가독성과 유지보수를 위해 호이스팅이 일어나지 않도록 한다.
간단히 말해서 일반적으로 함수와 변수를 코드 상단부에 선언하면 관련 문제들을 방지할 수 있다.
Object prototypes
Javascript는 프로토타입 기반 언어
Javascript에는 클래스라는 개념이 없다!
대신 프로토타입이 존재한다.
상속 기능도 없다.
프토토타입을 기반으로 상속을 흉내낸다.
상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있다.
person1의 프로토타입 객체: Person() 생성자의 프로토타입
Person의 프로토타입 객체: Object() 생성자의 프로토타입
prototype 속성도 하나의 객체이며 프로토타입 체인을 통해 상속하고자 하는 속성과 메소드를 담아두는 버킷
모든 객체는 Object의 자식이라고 볼 수 있고, Object prototype object에 있는 모든 속성을 사용할 수 있다.
프로토타입 체인 구조 (’proto’ 속성을 통해 상위 프로토타입과 연결됨)