SlideShare a Scribd company logo
1 of 10
2016 자바카페 스파르탄 스터디
INSIDE Java Script 5
JAVACAFE
박진현
2016 자바카페 스파르탄 스터디들어가기 앞서..
 본 슬라이드는 2016 자바카페 스파르탄 스터디를 위해
제작되었습니다.
 본 슬라이드의 대부분의 내용은
인사이드 자바스크립트
(2014 송형주, 고현준) 의
내용을 참고하였습니다.
2016 자바카페 스파르탄 스터디목 차
 실행컨텍스트의 개념
 활성 객체(Activation object) 와 변수 객체(Variable Object)
 스코프 체인
 클로저
2016 자바카페 스파르탄 스터디실행 컨텍스트 개념
 콜스택의 실행정보 한개와 동일
 실행 가능한 코드를 형상화하고
구분하는 추상적인 개념
 Global code
 Eval code
 Function code
 자신의 실행컨텍스트와 관련없는 코
드가 실행되면 새로운 실행컨텍스트
가 생기고 제어권이 해당컨텍스트로
이동
h1 h1
h2
h1
h2
h3
2016 자바카페 스파르탄 스터디실행컨텍스트 생성 과정
 활성 객체
 해당 컨텍스트 실행에 필요한 여러가지 정보를 담을객체
 매개변수
 사용자 정의 변수 및 객체
 사용자 접근 X, 엔진 접근용
 arguments 객체 생성
 스코프 정보 생성
 현재 컨텍스트의 유효범위를 나타냄
 현재 컨텍스트의 변수 및 상위 실행 컨텍스트의 변수도
접근 가능
 연결리스트(Linked List)와 유사함
2016 자바카페 스파르탄 스터디실행컨텍스트 생성 과정
 코드 생성
 변수에 값이 할당됨
 전역실행 컨텍스트
 arguments 가 없음(뭘 넘겨야 받지!)
 변수객체 == 전역 객체
 브라우저 : 최상위 코드 == 전역코드
 Node.js : 파일단위 모듈화
 var a = 10; //모듈 지역변수
 b = 10; //전역변수
 오—염이 되기떄문에 왠만하면 var를..
2016 자바카페 스파르탄 스터디스코프 체인
 자바스크립트도 언어야! == 스코프(유효범위)가 있음
 오직 함수만이 유효범위의 한단위 : for,{},if문은 유효범위 X
 변수와 함수의 유효범위를 나타내는 것 == 스코프체인
 각각의 함수는 [[scope]]로 자신이 생성된 실행컨텍스트의
스코프 체인을 참조
 함수가 실행되는 순간 만들어짐
 현재 실행되는 함수의 [[scope]]를 기반으로
새로운 스코프 체인을 만듬
 전역 실행 컨텍스트
 최상위 실행객체
 [[scope]] == 나 자신
2016 자바카페 스파르탄 스터디스코프 체인
 코드..코드를 보자!
 함수 객체가 처음생성될 당시
실행 컨텍스트에 따라감
 사실 앞에 말이랑 좀 햇갈림
 함수가 중복함수일때 내부함수가
상위 함수의 스코프체인을 이어감
 with 구문
 스코프 체인을 강제함
 왠만하면 쓰지마세양!
var v = "v1";
function pF(){
var v = "v2";
function pV(){
return v;
}
console.log(pV());
}
pF();
var v = "v1";
function pF(){
var v = "v2";
console.log(pV());
}
function pV(){
return v;
}
pF();
2016 자바카페 스파르탄 스터디클로저
 이미 생명주기가 끝난 외부함수의 변수를 참조하는 함수
 클로저에서 참조되는 변수를 자유변수라 함
 함수형 언어에서 주요하게 사용되는 특성
 코드..코드를 보자!
 add5가 초기화된 시점에서 사실 mA 함수는 실행 끝
 하지만 내부적으로 넘어간 x의 값이 계속 참조
 심지어 읽기 쓰기도 됨! (우와! 정말 대단해!!)
2016 자바카페 스파르탄 스터디클로저 활용
 특정함수에 사용자가 정의한 객체의 메서드 연결
 정해진 형식의 함수를 콜백해주는 라이브러리에
형식이 다른 사용자 정의 함수를 호출할때 유용히 사용됨
 함수의 캡슐화
 글로벌 객체기에 외부에 노출되어 있음(맘대로 변경가능)
 클로저를 이용 밖에서 더 이상 변경이 불가능하게 바꿀수 있음
 setTimeout 사용자 함수 지정
 함수의 인자값을 넘길수 있음
 코드로 하나씩 확인해 보아요

More Related Content

What's hot

헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리은숙 이
 
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는Taegon Kim
 
Angular2 가기전 Type script소개
 Angular2 가기전 Type script소개 Angular2 가기전 Type script소개
Angular2 가기전 Type script소개Dong Jun Kwon
 
스프링 프레임워크 입문
스프링 프레임워크 입문스프링 프레임워크 입문
스프링 프레임워크 입문Keesun Baik
 
백기선의 스프링 부트
백기선의 스프링 부트백기선의 스프링 부트
백기선의 스프링 부트Keesun Baik
 
자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법Sungchul Park
 
Django와 flask
Django와 flaskDjango와 flask
Django와 flaskJiho Lee
 
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Mvc 패턴
Mvc 패턴Mvc 패턴
Mvc 패턴Seokju Hong
 
Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기rupert kim
 
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...탑크리에듀(구로디지털단지역3번출구 2분거리)
 

What's hot (20)

헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리헷갈리는 자바스크립트 정리
헷갈리는 자바스크립트 정리
 
Java 기초
Java 기초Java 기초
Java 기초
 
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
 
Angular2 가기전 Type script소개
 Angular2 가기전 Type script소개 Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
 
Javascript
JavascriptJavascript
Javascript
 
스프링 프레임워크 입문
스프링 프레임워크 입문스프링 프레임워크 입문
스프링 프레임워크 입문
 
(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션
(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션
(스프링초보자를위한)스프링 컨텍스트 설정과 관련된 어노테이션
 
백기선의 스프링 부트
백기선의 스프링 부트백기선의 스프링 부트
백기선의 스프링 부트
 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
 
Spring Boot 1
Spring Boot 1Spring Boot 1
Spring Boot 1
 
자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법
 
Jpa more
Jpa moreJpa more
Jpa more
 
Django와 flask
Django와 flaskDjango와 flask
Django와 flask
 
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
 
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
#12.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_구로IT학원, 국비지원학원,재직자/실업자교육학원,스...
 
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
 
Mvc 패턴
Mvc 패턴Mvc 패턴
Mvc 패턴
 
Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기Java 8 api :: lambda 이용하기
Java 8 api :: lambda 이용하기
 
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
(#8.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis))스프링/자바교육/IT교육/스프링프레임워크교육/국비지...
 

Viewers also liked

Funny pranks youtube videos
Funny pranks youtube videosFunny pranks youtube videos
Funny pranks youtube videosgiovandialop
 
Cat youtube videos
Cat youtube videosCat youtube videos
Cat youtube videosalexmuunue
 
Really funny cat videos
Really funny cat videosReally funny cat videos
Really funny cat videosalexmuunue
 
Apostila briefing 2
Apostila briefing 2Apostila briefing 2
Apostila briefing 2Tramontim
 
Презентация акций и новинок каталога Фаберлик Украина 13-2015
Презентация акций и новинок каталога Фаберлик Украина 13-2015Презентация акций и новинок каталога Фаберлик Украина 13-2015
Презентация акций и новинок каталога Фаберлик Украина 13-2015Natalia Antonova
 
Strategic Connections Company Profile 2017
Strategic Connections Company Profile 2017Strategic Connections Company Profile 2017
Strategic Connections Company Profile 2017Tom Rause
 
로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?Heemin Kim
 
Tp n° 7 tratamiento de efluentes industriales
Tp n° 7 tratamiento de efluentes industrialesTp n° 7 tratamiento de efluentes industriales
Tp n° 7 tratamiento de efluentes industrialesoperaciones2015
 
Фаберлик Россия. Презентация каталога 17-2015.
Фаберлик Россия. Презентация каталога 17-2015.Фаберлик Россия. Презентация каталога 17-2015.
Фаберлик Россия. Презентация каталога 17-2015.Natalia Antonova
 

Viewers also liked (13)

Funny pranks youtube videos
Funny pranks youtube videosFunny pranks youtube videos
Funny pranks youtube videos
 
Cat youtube videos
Cat youtube videosCat youtube videos
Cat youtube videos
 
Unit 2 vocab
Unit 2 vocabUnit 2 vocab
Unit 2 vocab
 
Really funny cat videos
Really funny cat videosReally funny cat videos
Really funny cat videos
 
Apostila briefing 2
Apostila briefing 2Apostila briefing 2
Apostila briefing 2
 
Презентация акций и новинок каталога Фаберлик Украина 13-2015
Презентация акций и новинок каталога Фаберлик Украина 13-2015Презентация акций и новинок каталога Фаберлик Украина 13-2015
Презентация акций и новинок каталога Фаберлик Украина 13-2015
 
Trabalho de informatica
Trabalho de informaticaTrabalho de informatica
Trabalho de informatica
 
selection
selectionselection
selection
 
Cat show
Cat showCat show
Cat show
 
Strategic Connections Company Profile 2017
Strategic Connections Company Profile 2017Strategic Connections Company Profile 2017
Strategic Connections Company Profile 2017
 
로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?
 
Tp n° 7 tratamiento de efluentes industriales
Tp n° 7 tratamiento de efluentes industrialesTp n° 7 tratamiento de efluentes industriales
Tp n° 7 tratamiento de efluentes industriales
 
Фаберлик Россия. Презентация каталога 17-2015.
Фаберлик Россия. Презентация каталога 17-2015.Фаберлик Россия. Презентация каталога 17-2015.
Фаберлик Россия. Презентация каталога 17-2015.
 

Similar to 스파르탄Js in sidejs5

Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기jongho jeong
 
Javascript Context, Prototype
Javascript Context, PrototypeJavascript Context, Prototype
Javascript Context, PrototypeGunhee Lee
 
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현NAVER Engineering
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015sung yong jung
 
[하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기 [하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기 인권 김
 
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기jeong seok yang
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)Sung-hoon Ma
 
Hight performance java script chapter1, 2
Hight performance java script chapter1, 2Hight performance java script chapter1, 2
Hight performance java script chapter1, 2YOUNGMIN JUN
 
JS특징(scope,this,closure)
JS특징(scope,this,closure)JS특징(scope,this,closure)
JS특징(scope,this,closure)지수 윤
 
How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)월간 IT 슬라이드
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업NAVER D2
 
Spring MVC
Spring MVCSpring MVC
Spring MVCymtech
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicknight1128
 
Spring test mvc 발표자료
Spring test mvc 발표자료Spring test mvc 발표자료
Spring test mvc 발표자료수홍 이
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기Ted Won
 

Similar to 스파르탄Js in sidejs5 (20)

Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기Javascript 조금 더 잘 알기
Javascript 조금 더 잘 알기
 
Javascript Context, Prototype
Javascript Context, PrototypeJavascript Context, Prototype
Javascript Context, Prototype
 
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
 
[하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기 [하코사 세미나] 비전공자의 자바스크립트 도전기
[하코사 세미나] 비전공자의 자바스크립트 도전기
 
비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기비전공자의 자바스크립트 도전기
비전공자의 자바스크립트 도전기
 
Javascript
JavascriptJavascript
Javascript
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
 
[H3 2012] 꽃보다 Scala
[H3 2012] 꽃보다 Scala[H3 2012] 꽃보다 Scala
[H3 2012] 꽃보다 Scala
 
Hight performance java script chapter1, 2
Hight performance java script chapter1, 2Hight performance java script chapter1, 2
Hight performance java script chapter1, 2
 
JS특징(scope,this,closure)
JS특징(scope,this,closure)JS특징(scope,this,closure)
JS특징(scope,this,closure)
 
How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
Springmvc
SpringmvcSpringmvc
Springmvc
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
 
4-2. ajax
4-2. ajax4-2. ajax
4-2. ajax
 
Spring test mvc 발표자료
Spring test mvc 발표자료Spring test mvc 발표자료
Spring test mvc 발표자료
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 

스파르탄Js in sidejs5

  • 1. 2016 자바카페 스파르탄 스터디 INSIDE Java Script 5 JAVACAFE 박진현
  • 2. 2016 자바카페 스파르탄 스터디들어가기 앞서..  본 슬라이드는 2016 자바카페 스파르탄 스터디를 위해 제작되었습니다.  본 슬라이드의 대부분의 내용은 인사이드 자바스크립트 (2014 송형주, 고현준) 의 내용을 참고하였습니다.
  • 3. 2016 자바카페 스파르탄 스터디목 차  실행컨텍스트의 개념  활성 객체(Activation object) 와 변수 객체(Variable Object)  스코프 체인  클로저
  • 4. 2016 자바카페 스파르탄 스터디실행 컨텍스트 개념  콜스택의 실행정보 한개와 동일  실행 가능한 코드를 형상화하고 구분하는 추상적인 개념  Global code  Eval code  Function code  자신의 실행컨텍스트와 관련없는 코 드가 실행되면 새로운 실행컨텍스트 가 생기고 제어권이 해당컨텍스트로 이동 h1 h1 h2 h1 h2 h3
  • 5. 2016 자바카페 스파르탄 스터디실행컨텍스트 생성 과정  활성 객체  해당 컨텍스트 실행에 필요한 여러가지 정보를 담을객체  매개변수  사용자 정의 변수 및 객체  사용자 접근 X, 엔진 접근용  arguments 객체 생성  스코프 정보 생성  현재 컨텍스트의 유효범위를 나타냄  현재 컨텍스트의 변수 및 상위 실행 컨텍스트의 변수도 접근 가능  연결리스트(Linked List)와 유사함
  • 6. 2016 자바카페 스파르탄 스터디실행컨텍스트 생성 과정  코드 생성  변수에 값이 할당됨  전역실행 컨텍스트  arguments 가 없음(뭘 넘겨야 받지!)  변수객체 == 전역 객체  브라우저 : 최상위 코드 == 전역코드  Node.js : 파일단위 모듈화  var a = 10; //모듈 지역변수  b = 10; //전역변수  오—염이 되기떄문에 왠만하면 var를..
  • 7. 2016 자바카페 스파르탄 스터디스코프 체인  자바스크립트도 언어야! == 스코프(유효범위)가 있음  오직 함수만이 유효범위의 한단위 : for,{},if문은 유효범위 X  변수와 함수의 유효범위를 나타내는 것 == 스코프체인  각각의 함수는 [[scope]]로 자신이 생성된 실행컨텍스트의 스코프 체인을 참조  함수가 실행되는 순간 만들어짐  현재 실행되는 함수의 [[scope]]를 기반으로 새로운 스코프 체인을 만듬  전역 실행 컨텍스트  최상위 실행객체  [[scope]] == 나 자신
  • 8. 2016 자바카페 스파르탄 스터디스코프 체인  코드..코드를 보자!  함수 객체가 처음생성될 당시 실행 컨텍스트에 따라감  사실 앞에 말이랑 좀 햇갈림  함수가 중복함수일때 내부함수가 상위 함수의 스코프체인을 이어감  with 구문  스코프 체인을 강제함  왠만하면 쓰지마세양! var v = "v1"; function pF(){ var v = "v2"; function pV(){ return v; } console.log(pV()); } pF(); var v = "v1"; function pF(){ var v = "v2"; console.log(pV()); } function pV(){ return v; } pF();
  • 9. 2016 자바카페 스파르탄 스터디클로저  이미 생명주기가 끝난 외부함수의 변수를 참조하는 함수  클로저에서 참조되는 변수를 자유변수라 함  함수형 언어에서 주요하게 사용되는 특성  코드..코드를 보자!  add5가 초기화된 시점에서 사실 mA 함수는 실행 끝  하지만 내부적으로 넘어간 x의 값이 계속 참조  심지어 읽기 쓰기도 됨! (우와! 정말 대단해!!)
  • 10. 2016 자바카페 스파르탄 스터디클로저 활용  특정함수에 사용자가 정의한 객체의 메서드 연결  정해진 형식의 함수를 콜백해주는 라이브러리에 형식이 다른 사용자 정의 함수를 호출할때 유용히 사용됨  함수의 캡슐화  글로벌 객체기에 외부에 노출되어 있음(맘대로 변경가능)  클로저를 이용 밖에서 더 이상 변경이 불가능하게 바꿀수 있음  setTimeout 사용자 함수 지정  함수의 인자값을 넘길수 있음  코드로 하나씩 확인해 보아요