| 클로저 | P? | 생명 주기가 끝난 외부함수 변수를 참조하는 함수 | |
|---|---|---|---|
| 외부함수 호출 => 새로운 함수 반환 (클로저/자유변수) |
성능 문제 유발 o | 함수 캡슐화 | setTimeout() 지정 함수의 사용자 정의 |
| 특정 함수 => 사용자 정의 객체의 메서드 연결 |
프로퍼티값 쓰기 o => 값 여러번 호출 => 변할수 있음 |
하나의 클로저 => 여러 함수 객체 스코프 체인 |
루프 안 주의 |
TIL-210214
| 스코프 체인 | P? | 함수 객체 내 연결 리스트 | |
|---|---|---|---|
| 스코프 : 유효범위 | 각 함수 객체 [scope] 프로퍼티 => 현재 컨텍스트의 스코프체인 참조 | 실행 함수 객체의 [scope] 프로퍼티 복사, 새 변수 객체 해당 체인 제일 앞에 추가 |
현재 실행 컨텍스트 변수 객체 |
| 상위 컨텍스트 스코프 체인 | 식별자 인식 => 첫번째 변수 객체부터 시작 | this = 키워드로 분류됨 |
TIL-210213
| 실행 컨텍스트 | P? | 코드를 형상화하고 구분 | |
|---|---|---|---|
| 실행 가능한 코드 블록이 실행되는 환경 |
활성 객체(= 변수 객체) 실행에 필요한 여러가지 정보를 담는 객체 |
arguments 객체 => agruments 프로퍼티로 참조 |
유효범위 => 스코프 정보 생성 |
| 내부 지역 변수 생성 |
this 바인딩 | 코드실행 : 실행 컨텍스트 => 변수 => 코드 |
TIL-210212
| 함수 | P? | 함수는 늘 리턴값을 반환하고 프로토타입은 객체다 | |
|---|---|---|---|
| 함수 : 리턴값 반환 | (일반함수, 메서드) 리턴값x <= undefined |
(생성자 함수) 리턴값x <= 생성 객체 리턴값(객체) o <= 넘긴 객체 불린, 숫자, 문자열 무시 |
(객체 생성 규칙) 생성자 함수 prototype 프로퍼티 => prototype 객체 => 부모 객체 취급([prototype] 링크연결) |
| 프로토타입 체이닝 = 자신 프로퍼티 o 부모 프로퍼티 o |
생성자 함수 프로토타입 체이닝 = 객체 생성 규칙 동일 |
프로토타입 종점 = Object.prototype 객체 |
프로토타입 = 객체 => 동적으로 값 추가/삭제 o=> 실시간 프로토타입 체이닝 반영 |
| 디폴트 프로토타입 => 다른 객체 변경 가능 |
객체 프로퍼티 읽기 메서드 실행 => 프로토타입 체이닝 동작 |
TIL-210209
| 함수 | P? | 호출 패턴에 따른 this 바인딩과 명시적 this 바인딩 | |
|---|---|---|---|
| 객체 메서드 호출 this 바인딩 |
함수 호출 this 바인딩 (내부 함수 동일) |
생성자 함수 호출 this 바인딩 |
생성자 함수 동작 (빈 객체 및 바인딩 => this 프로퍼티 생성 => 생성 객체 리턴) |
| 객체 리터럴 vs 생성자 함수 (프로토타입 객체 다름) |
call, apply 메서드 (명시적 this 바인딩) |
apply() : 원하는 값 매핑해 특정함수, 메서드 호출 |
TIL-210208
| 함수 | P? | 자바스크립트에서 함수는 객체이며 값으로 취급 | |
|---|---|---|---|
| 일급 객체 | 변수, 프로퍼티 값으로 할당 | 함수 인자로 전달 | 리턴값 |
| 함수 객체 표준 프로퍼티 (length, prototype...) |
prototype !== 내부 [[prototype]] |
prototype <=> constructor |
형태 : 콜백 함수, 즉시 실행 함수, 내부 함수, 리턴 함수 |
| 함수 호출, this | arguments 객체 (유사배열) |
TIL-210205
| 함수 | P? | 함수 정의 | |
|---|---|---|---|
| 함수 리터럴 | 함수 선언문 | 함수 표현식 | 함수 변수 |
| Function 생성자 함수 | 함수 호이스팅 | 함수 객체 (코드 실행, 프로퍼티) |
- 유데미 강의 진행 중 함수에 대한 설명이 부족해 추가적으로 책을 통해 보충학습 진행하고 있음


