[함수 내부동작]
- 자바스크립트 엔진의 내부를 살펴보면 함수가 실행스택에 쌓일 때 함수는 객체를 생성함
- 객체는 Variable Object(줄여서 VO 라 함)임
- 객체 내부(프로퍼티)는 아래와 같음
1) arguments 객체 : 함수로 넘어오는 인자 정보를 담는 객체, 배열은 아니지만 배열과 유사한 형태(배열객체가 제공하는 메소드 사용X)로 저장
2) 지역변수, 함수
3) scope chain : [[Scopes]] 프로퍼티 참고
- 변수의 범위를 담은 프로퍼티
- 선언된 지역변수는 지역변수의 값, 그렇지않은 것은 전역객체의 변수 프로퍼티값 참조
- 전역객체에서도 없으면 undefined (상위 객체에서도 없을 때에 undefined 즉, 선언되지않은 값)
[함수 상세하게 보기]
1) 콘솔창에 함수 만들기
1 2 3 4 5 6 7 | function sum(x,y,z) { var total = arguments[0] +arguments[1]+arguments[2]; /* 함수를 통해 넘어오는 인자를 저장하고 있는 arguments 객체(유사배열저장) */ return total; } | cs |
2) console.dir(함수명) 으로 함수 구조보기
- [[Scopes]] : 스코프체인
- arguments : 호출될 때(값이 넘어올 때) 객체 생성 후 인자값(유사배열객체) 넣음
[참고자료]
1) insanehong naver fe engineer 블로그 : http://insanehong.kr/post/javascript-scope/
2) poiema 블로그 : http://poiemaweb.com/
3) 내 블로그 실행컨텍스트 : http://jinbroing.tistory.com/78
'javascript' 카테고리의 다른 글
[웹기본개념] HTTP 그리고 REST API 다가가기 (0) | 2017.04.20 |
---|---|
[자바스크립트] 함수 호이스팅 (0) | 2017.04.20 |
[자바스크립트] 느슨한 타입 (0) | 2017.04.19 |
[웹기본개념] 어플리케이션 캐시 (0) | 2017.04.18 |
[웹기본개념] DOM 그리고 DOM api (0) | 2017.04.18 |
댓글