inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 중고급: 엔진 핵심

8. 파라미터 값 할당 기준, [정리 시간]

파라미터 값 매핑 정리

294

simoniful

작성한 질문수 10

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) : {}
}

파라미터매핑 javascript

답변 1

3

김영보

아래 문장을 논리적으로 접근해주세요. 

생성된 argu 배열의 인덱스에 따라 차례대로 값을 구하며
=> 힌트: 자바스크립트에 "argu 배열"은 없으며 argument 오브젝트는 있습니다. 

4. 내부 변수 검색 obj에 undefined;

5. obj에 {} 할당

=> 4번과 5번 힌트: 1. obj.getTotal(11, 22, 55) 함수가 호출되면
=> obj는 getTotal() 함수 안에 있지 않습니다.

0

simoniful

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 : {}
    }
}

getBook 실습 예제중 질문드립니다!

0

419

1

__proto__ 에 대해 질문드립니다

0

315

1

호이스팅 코딩시간 풀이

0

358

1

[코딩 시간] JS {name: value} 이해

0

339

1

[[Scope]] 와 [[Environment]]는 같은 개념인가요

0

345

0

slice

0

239

0

스코프가 뭔가요?

0

307

0

어려워요

0

254

0

강사님 변수이름에 get을 붙이는 이유를 알고싶습니다.

0

339

1

[정리 시간] 정확하게 이해했는지 확인 부탁드립니다.

0

300

0

스코프 질문

0

253

1

fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ

1

542

1

this binding 논리 질문입니다.

0

279

1

파라미터 값을 매핑할 때

0

251

0

ES6부터는 this 바인딩을 환경 레코드에서 참조한다고 들었습니다.

0

209

0

정리시간 입니다.

0

228

0

정리시간입니다.

6

269

0

정리 시간 입니다.

0

202

0

정리시간입니다.

6

227

0

코딩시간 입니다.

1

221

0

선생님 스코프 질문이 있습니다.

1

238

0

[정리시간] 해보았습니다!

0

173

0

선생님 질문있습니다!!

0

157

0

질문드려도 될까요 선생님..

0

214

0