작성
·
115
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’ ]가 생성되는 건가요?
답변