본문 바로가기

자바스크립트🔥

ES6 / 화살표함수

Arrow Funciton은 코드량 줄여주는 고마운녀석.

일부 함수패턴에서 코드를 비교적 깔끔하게 정리해준다.

 

화살표함수는 자신의 this가 없다.

대신, 화살표 함수를 둘러싸는 lexical scope의 this가 사용됨.

때문에 현재 범위에서 존재하지 않는 this를 찾을 때 화살표함수는 바로 바깥 범위에서 this를 찾는것으로 검색을 끝냄.

 

아래 예시코드를 보며 이해해보자.

function Person() {
	this.age = 0;
    
    setInterval(() => {
    	this.age++; // 여기서 this는 Person 객체를 참조함.
    }, 1000);
}

var P = new Person();

 

엄격모드(strict mode)와의 관계도 약간 복잡한데

당장에 이해하기엔 나으 능력 부조크...🤣 

차근차근 이해하자.

 

저번편에서도 기록했듯이 

JS에서 this는 함수호출방식에따라 this에 바인딩할 어떤 객체가 동적으로 결정된다.

 

함수의 상위 스코프를 결정하는 렉시컬스코프(Lexical Scope)는 함수를 선언할 때 결정된다.

this바인딩과 혼동하지 않도록 주의해야한다.