본문 바로가기
javascript

[자바스크립트] 함수 내부 동작

by jinbro 2017. 4. 19.

[함수 내부동작]

- 자바스크립트 엔진의 내부를 살펴보면 함수가 실행스택에 쌓일 때 함수는 객체를 생성함
- 객체는 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


댓글