• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

정리 시간 입니다.

21.08.12 14:50 작성 조회수 119

0

### \[정리시간\]

```javascript
var obj = {};
obj.getTotal = function(one, two, two){
console.log(one + two);
};
obj.getTotal(11, 22, 55);
// 66
```

--- 초기화 단계 ---
1. obj에 빈 오브젝트 할당
2. obj.getTotal(11, 22, 55);를 만나서 함수 호출
3. 실행 콘텍스트 생성하고 실행 콘텍스트 안으로 이동
4. 3개의 컴포넌트 첨부
5. getTotal function 오브젝트의
[\[FormalParameters]]에 파라미터 이름 설정
6. 호출한 함수의 파라미터 값을 실행 콘텍스트에 넘겨줌
- ["one", "two", "two"] 형태로
getTotal function 오브젝트의 [\[FormalParameters]]에
설정되어 있음
- 이 배열을 읽는다.
- 호출한 함수의 파라미터 값에서 index 번째의 값을 구함
7. obj.getTotal 함수의 파라미터 이름과
넘겨받은 파라미터 값을 매핑
- 선언적 환경 레코드에 설정
- {name: value} 형태로 설정
- {one: 11, two: 22, two: 55}로 설정해야 하는데
- two: 55를 매핑할 때, 이미 two 이름이 존재하므로
매핑되어 있던 값인 22가 55로 변경됨
8. 더이상 초기화할 코드가 없음

--- 실행 단계 ---
9. 선언적 환경 레코드에는 {one:11, two: 55} 상태
10. console.log(one + two); 를 실행
11. 선언적 환경 레코드에 one과 two가 있으므로
해당 값을 가져옴
12. 11 + 55 = 66이므로
13. 콘솔에 66을 출력합니다.

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!