호이스팅

함수 내에서 아래쪽에 존재하는 내용 중 필요한 값을 끌어올리는 것

코드의 가독성과 유지보수를 위해 호이스팅이 일어나지 않도록 한다.

간단히 말해서 일반적으로 함수와 변수를 코드 상단부에 선언하면 관련 문제들을 방지할 수 있다.

Object prototypes

Javascript는 프로토타입 기반 언어

Javascript에는 클래스라는 개념이 없다!

대신 프로토타입이 존재한다.

상속 기능도 없다.

프토토타입을 기반으로 상속을 흉내낸다.

상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있다.

MDN-Graphics-person-person-object-2.png

person1의 프로토타입 객체: Person() 생성자의 프로토타입

Person의 프로토타입 객체: Object() 생성자의 프로토타입

prototype 속성도 하나의 객체이며 프로토타입 체인을 통해 상속하고자 하는 속성과 메소드를 담아두는 버킷

모든 객체는 Object의 자식이라고 볼 수 있고, Object prototype object에 있는 모든 속성을 사용할 수 있다.

프로토타입 체인 구조 (’proto’ 속성을 통해 상위 프로토타입과 연결됨)

프로토타입 체인 구조 (’proto’ 속성을 통해 상위 프로토타입과 연결됨)