일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 정적 메서드와 프로토타입 메서드의 차이
- 외부 함수
- 변수 중복 선언 허용
- 인스턴스 초기화
- 일급 객체
- 클로저
- 상위 스코프 결정
- 프로토타입 메서드
- 정의 방식
- 렉시컬 환경
- 즉시 실행 함수
- var 키워드로 선언한 변수의 문제점
- Number의 정적 메서드
- 변수 호이스팅
- 상태 은닉
- 원시 값과 객체의 비교
- 전역 코드 평가
- 함수 레벨 스코프
- 전역 객체 생성
- 환경 레코드
- 중첩 함수
- 정적 메서드
- 새로운 객체 생성 메커니즘
- 클래스에서 정의한 메서드의 특징
- 전역 코드 실행
- 문법적 설탕
- 인스턴스 반환
- 인스턴스 생성과 this 바인딩
- 전역 코드 실행 종료
- 전역 변수의 문제점
- Today
- Total
목록모던 자바스크립트 Deep Dive/함수와 일급 객체 (2)
YJSTAR

함수는 객체다. 따라서 함수도 프로퍼티를 가질 수 있다. 브라우저 콘솔에서 console.dir 메서드를 사용하여 함수 객체의 내부를 들여다보자. function square(number) { return number * number; } console.dir(square); square 함수의 모든 프로퍼티의 프로퍼티 어트리뷰트를 Object.getOwnPropertyDescriptors 메서드로 확인해 보면 다음과 같다. function square(number) { return number * number; } console.log(Object.getOwnPropertyDescriptors(square)); /* { length: {value: 1, writable: false, enumerable..
다음과 같은 조건을 만족하는 객체를 일급 객체라 한다. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다. 변수나 자료구조(객체, 배열 등)에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. 자바스크립트의 함수는 다음 코드와 같이 위의 조건을 모두 만족하므로 일급 객체다. // 1. 함수는 무명의 리터럴로 생성할 수 있다. // 2. 함수는 변수에 저장할 수 있다. // 런타임(할당 단계)에 함수 리터럴이 평가되어 함수 객체가 생성되고 변수에 할당된다. const increase = function (num) { return ++num; }; const decrease = function (num) { return --num; }; // 2. 함수는..