자바스크립트🔥

ES6 / 화살표함수

나섬애드 2021. 5. 9. 18:22

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바인딩과 혼동하지 않도록 주의해야한다.