JavaScript
클래스 기반 언어 vs 자바스크립트
매료매료
2020. 3. 27. 10:36
- 자바스크립트에는 클래스가 없다.
- 함수 내부에서 this의 의미는 클래스 언어에서 말하는 인스턴스 자신이 아니라 함수에게 전달된 컨텍스트다.
- 클래스 언어는 인스턴스를 기준으로 메서드를 호출하는 문법만 존재하나, 자바스크립트는 함수에게 인스턴스를 전달하는 방법도 존재한다.
- new는 근본적으로 오브젝트를 만들어낸다.
- new 뒤에 오는 것은 클래스가 아니라 그저 함수다.
- new로 생성한 오브젝트는 new에 전달된 함수의 prototype이라는 속성을 자신의 __proto__에 참조로 잡게 된다.
- new가 실행되면 3단계(오브젝트생성, prototype할당, 함수호출)의 순차적인 작업이 일어난다.