-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
정리 시간 입니다.
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