몽땅뚝딱 개발자
[Javascript] Argument 처리 본문
출처
자바스크립트 중고급: 근본 핵심 이해 - 인프런 | 강의
4개 강좌로 구성된 자바스크립트 바이블 강좌의 2번째 강좌입니다. 자바스크립트 엔진 이해를 통해 자바스크립트에 최적화된 프로그램을 개발할 수 있습니다. 자신 있게 시스템을 설계할 수 있
www.inflearn.com
🚀 Argument 처리 메커니즘
◽ Argument 처리 구조
함수가 호출되면 함수 안에서 우선 argument object를 만들고, 파라미터를 {key:value} 형태로 저장한다.
key가 없기 때문에 파라미터 수 만큼 0부터 인덱스를 부여하여 그 인덱스를 key로 사용한다.
파라미터로 받은 값을 value에 설정한다.
{0: param1, 1: param2}이 형태이다.
이 형태를 'Array-like'라고 부르며, array처럼 처리될 수 있다는 의미인 듯 하다.
- key값이 0부터 1씩 증가해야 한다.
- length 프로퍼티가 있어야 한다.
function get() {
return arguments;
}
console.log(get("A", "B"));
[실행 결과]
{0: A, 1: B}
◽ 엔진의 파라미터 처리 (※ 함수의 초기화 단계에서 진행)
1. get() 함수를 호출하여 2개의 파라미터를 넘겨준다.
2. 넘겨받은 값을 함수의 파라미터 이름에 설정한다.
파라미터 이름: one, 값: 10이면 one:10 형태로 정적환경의 선언적 환경레코드에 설정한다.
3. argument object를 생성한다.
- length 프로퍼티에 넘겨받은 파라미터의 수를 설정
- 파라미터 수 만큼 반복하며 {0: 10}, {1: 15}... 형태로 파라미터 값을 설정
'Development > Javascript' 카테고리의 다른 글
[Javascript] 호이스팅(Hoisting) (0) | 2021.07.07 |
---|---|
[Javascript] 스코프(Scope) (0) | 2021.07.07 |
[Javascript] 오버로딩(Overloading) (0) | 2021.07.07 |
[Javascript/ES6+] Arrow Function (0) | 2021.07.07 |
[Javascript/ES6+] const 변수 (0) | 2021.07.07 |