인프런 커뮤니티 질문&답변
[정리] 예제 정리해 보았습니다.
작성
·
135
0
1. 함수 선언문이 없음으로 넘어감
2. 변수 할당 → obj = undefined
3. 코드 실행 → obj = {}
→ obj.getTotal = function(){}, 이때 getTotal function object 생성, [[Scope]] 설정
function object의 [[FormalParameters]]에 [ ‘one’, ‘two’, ‘two’ ] 생성
→ obj.getTotal(11, 22, 55)를 통해 getTotal 함수 호출
4. getTotal 함수에 실행 콘텍스트 이동 + 파라미터의 값이 실행 콘텍스트로 넘어감
5. 파라미터 값이 선언적 환경 레코드에 매핑됨
→ { one : 11 } → { one : 11, two : 22 } → { one : 11, two : 55 }
two가 이미 존재하기 때문에 세 번째 값이 기존의 two에 할당되 two는 55가 됨
6. getTotal 안에 함수 선언문, 변수 할당이 없으로 넘어감
7. getTotal에서 코드 실행, log(one + two);
→ 선언적 환경 레코드에서 one과 two의 값을 찾음 → 66이 출력
----------------------------------
문제를 풀다가 모르는 부분이 나와서 질문드립니다.
[[FormalParameters]]에 [ ‘one’, ‘two’, ‘two’ ] 가 생성되는 건가요?
아님 이름이 겹치기 때문에 [ ‘one’, ‘two’ ]가 생성되는 건가요?
퀴즈
실행 콘텍스트의 주된 역할은 무엇일까요?
함수와 변수를 물리적 디스크에 저장하는 것
코드 실행에 필요한 환경과 상태 정보를 관리하는 것
브라우저 화면에 요소를 렌더링하는 것
네트워크 통신을 통해 데이터를 주고받는 것
답변





