본문 바로가기

Books/모던 JS Deep Dive ✔️49

[모던 JS Deep Dive] 25장 - 클래스 25.1 클래스는 프로토타입의 문법적 설탕인가? - JS는 프로토타입 기반의 객체 지향 언어 (클래스 필요없는, class free) - 과거 ES5 생성자 함수와 프로토타입을 이용하여 객체지향 언어의 상속 구현 가능했음 - 클래스는 사실 함수임, 기존 프로토타입 기반 패턴을 클래스 기반 패턴처럼 사용 가능한 문법적 설탕 (Syntactic sugar)이라고도 볼 수 있음 => 새로운 객체 생성 메커니즘으로 보는 것이 적절 - 클래스와 생성자 함수 모두 프로토타입 기반 인스턴스 생성, 하지만 정확히 동일하게 동작하지 않음 - 클래스는 생성자 함수보다 엄격하고, 추가 기능 제공 - ES6 클래스; extends, super 키워드 제공, new 연산자 없이 호출하면 에러 발생, 클래스 호이스팅 발생하지 않.. 2022. 1. 10.
[모던 JS Deep Dive] 24장 - 클로저 24.0 클로저 - 클로저는 함수를 일급 객체로 사용하는 함수형 언어에서 사용되는 중요한 특성 - MDN => 클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합 - JS는 렉시컬 스코프를 따르는 프로그래밍 언어 24.1 렉시컬 스코프 - JS 엔진은 함수를 어디서 호출했는지가 아니라 함수를 어디서 정의했는지에 따라 상위 스코프 결정 => 렉시컬 스코프 (정적 스코프) - 함수를 어디서 호출하는지는 함수의 상위 스코프 결정에 영향 주지 않음 - 함수의 상위 스코프는 함수를 정의한 위치에 의해 정적으로 결정되고 변하지 않음 - 실행 컨텍스트의 렉시컬 환경에서 OuterLexicalEnvironmentReference를 통해 상위 렉시컬 환경과 연결됨 - 스코프 체인 24.2 함수 객체의 내부 슬롯 [[.. 2022. 1. 6.
[모던 JS Deep Dive] 23장 - 실행 컨텍스트 23.1 소스코드의 타입 - 전역 코드 - 전역에 존재하는 소스코드, 전역에 정의된 함수, 클래스 등 내부 코드는 포함 X - 소스코드; 실행 가능한 코드, 소스코드 타입에 따라 실행 컨텍스트 생성 과정과 관리 내용 다름 - 전역 변수 관리 위한 최상위 스코프인 전역 스코프 생성 - 전역 코드 평가 시 전역 실행 컨텍스트 생성됨 - 함수 코드 - 함수 내부에 존재하는 소스코드, 함수 내부에 중첩된 함수, 클래스 등 내부 코드는 포함 X - 지역 스코프를 생성하고 지역 변수, 매개변수, arguments 객체 관리 - 함수 코드 평가 시 함수 실행 컨텍스트 생성됨 - eval 코드 - 빌트인 전역 함수인 eval 함수에 인수로 전달되어 실행되는 소스코드 - strict mode에서 자신만의 독자적인 스코프.. 2022. 1. 4.
[모던 JS Deep Dive] 22장 - this 22.1 this 키워드 - 객체 - 프로퍼티; 객체 고유의 상태 데이터 - 메서드; 상태 데이터를 참조하고 조작(변경)하는 동작 - 메서드가 자신이 속한 객체의 프로퍼티를 참조하려면 먼저 자신이 속한 객체를 가리키는 식별자를 참조할 수 있어야 함 - this는 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 self-referencing variable임, this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드 참조 가능 - this는 JS 엔진에 의해 암묵적으로 생성됨, 코드 어디서든 참조 가능 (전역, 함수 내부 모두 참조 가능) - 함수 호출 시 arguments 객체와 this가 암묵적으로 함수 내부로 전달됨 - this 바인딩 (this가 가리키는 객체/값).. 2022. 1. 3.
반응형