-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
파라미터 값 매핑 정리
21.04.08 10:26 작성 조회수 207
0
var obj = {};
obj.getTotal = function(one, two, two) {
console.log(one + two);
};
obj.getTotal(11, 22, 55);
초기화
1. obj.getTotal(11, 22, 55) 함수가 호출되면
파라미터 값을 실행 콘텍스트에 넘겨줍니다.
2. 파라미터 이름에 값을 매핑
getTotal 오브젝트의 [[FormalParameter]]에서 호출된 함수의 파라미터 이름을 구함
["one", "two"]
생성된 argu 배열의 인덱스에 따라 차례대로 값을 구하며 two를 덮어쓰게 됩니다.
선언적 환경 레코드에 {one: 11, two: 55} 형태로 설정합니다.
3. 내부 함수 선언문을 검색 - 해당사항 없음
4. 내부 변수 검색 obj에 undefined;
5. obj에 {} 할당
6. 초기화할 코드가 없기에 다시 첫 줄로 이동하여 함수 코드를 실행합니다.
실행단계
7. 선언적 환경 레코드는 {one: 11, two: 55} 상태
8. console.log(one + two)로 이동
선언적 환경 레코드에서 one, two 값을 구하고 그 결과 값인 66 출력
최대한 그 구성 맥락을 이해하려 하는데 컴포넌트 분류 개념이 확실한지 계속 돌려보고 있어요.
실행 콘텍스트(EC): {
렉시컬 환경 컴포넌트(LEC) = {
환경레코드(ER) : {
선언적 환경 레코드(DER) : {
argument : {one: 11, two: 55}
},
오브젝트 환경 레코드(OER) : {}
},
외부 렉시컬 환경 참조(OLER) : {
obj : {}
}
},
변수 환경 컴포넌트(VEC) : {},
this 바인딩 컴포넌트(TBC) : {}
}
답변을 작성해보세요.
3
김영보
지식공유자2021.04.08
아래 문장을 논리적으로 접근해주세요.
생성된 argu 배열의 인덱스에 따라 차례대로 값을 구하며
=> 힌트: 자바스크립트에 "argu 배열"은 없으며 argument 오브젝트는 있습니다.
4. 내부 변수 검색 obj에 undefined;
5. obj에 {} 할당
=> 4번과 5번 힌트: 1. obj.getTotal(11, 22, 55) 함수가 호출되면
=> obj는 getTotal() 함수 안에 있지 않습니다.
simoniful
질문자2021.04.08
1. obj.getTotal(11, 22, 55) 함수가 호출되면
파라미터 값을 실행 콘텍스트에 넘겨줍니다.
2. 파라미터 이름에 값을 매핑
getTotal 오브젝트의 [[FormalParameter]]에서 호출된 함수의 파라미터 이름을 구함
["one", "two"]
생성된 argu 오브젝트의 인덱스에 따라 차례대로 값을 구하며 two를 덮어쓰게 됩니다.
선언적 환경 레코드에 {one: 11, two: 55} 형태로 설정합니다.
3. 함수를 호출한 obj를 this 바인딩 컴포넌트에 설정
4. 내부 함수 선언문을 검색 - 해당사항 없음
5. 내부 변수 검색 - 해당사항 없음
이후 동일
이렇게 수정해야할 거 같네요
실행 콘텍스트(EC): {
렉시컬 환경 컴포넌트(LEC) = {
환경레코드(ER) : {
선언적 환경 레코드(DER) : {
argument : {one: 11, two: 55}
},
오브젝트 환경 레코드(OER) : {}
},
외부 렉시컬 환경 참조(OLER) : {
}
},
변수 환경 컴포넌트(VEC) : {},
this 바인딩 컴포넌트(TBC) : {
obj : {}
}
}
답변 1