-
[Javascript] Arrow Function(화살표 함수)Javascript/Javascript 2020. 9. 22. 09:17728x90반응형
Arrow Funcrtion의 특징
- 자바에서의 람다와 유사한 문법
- es6문법 중 가장 많이 쓰이는 문법으로 코드의 가독성을 높여줌
- this에 대해서 다른 범위 스코프를 가지고 있어 기존의 함수에서의 this의 불편함을 근본적 해결
- return 키워드 생략 가능
일반 함수 문법
function add(var1, var2) { return var1 + var2; }
화살표 함수 문법
//리턴 키워드 생략 가능 const addArrowFunction = (var1, var2) => var1 + var2 console.log(addArrowFunction(1, 2));
기존 함수에서의 this 사용
- 일반함수의 경우 this로 받게 된다면 해당하는 범위가 prototype의 this가 아닌 function 내부의 this를 받는다.
- 즉 api.prototype의 this를 받지 못해 아래와 같이 self라는 변수를 사용하여야 한다.
API.prototype.get = function (resource) { var self = this; return new Promise(function (resolve, reject) { http.get(self.uri + resource, function (data) { resolve(data); }); }); };
일반 function에서의 this arrow Function에서의 this 사용
해당 함수를 arrow Function으로 바꾸면 this문제를 해결할 수 있다.
화살표 함수는 기존의 함수의 this의 범위와 달리 글로벌 객체의 this를 사용하기 때문이다.
// Arrow Function으로 변경 API.prototype.get = (resource) => { new Promise((resolve, reject) => { // 기존 함수의 this의 범위와 달리 글로벌 객체의 this를 사용함 http.get(this.uri + resource, (data) => { resolve(data); }); }); };
화살표 함수 this 사용 내부 Closure함수 또한 하살표 함수로 표현할 수 있다.
내부 Closure 함수 (일반 함수)
//es6 이전 버전 문법 var getDiscount = function getDiscount(rate) { return function (price) { return rate * price; }; };
내부 Closure 함수 (화살표 함수)
const getDiscount = rate => price => rate * price; // 첫 번째 파라미터로 감 const getTenpercentOff = getDiscount(0.1); // 이후로는 계속 금액만 선언 가능 getTenpercentOff(10000);
728x90반응형'Javascript > Javascript' 카테고리의 다른 글
[Javascript] Static Method (0) 2020.09.23 [Javascript] Class, Class Extends (0) 2020.09.23 [Javascript] 즉시 실행 함수 표현(IIFE) (0) 2020.09.21 [Javascript] String 문자 검사 (startsWith, includes, endsWith) (0) 2020.09.21 [Javascript] Template String (0) 2020.09.21