Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 사기
- plugin
- 스노쿨링
- js
- 중고나라
- 유효성검사
- 여행
- REACT
- 세부
- 해외여행
- 삼성무선청소기제트
- Webpack
- JavaScript
- webpack.config.js
- autocomplate
- ES6
- 구분
- 정직하게사세요
- Hooks
- 중고거래사기
- 특수문자
- 마사지
- 맛사지
- 자동완성
- 막탄
- 스쿠버다이빙
- 중고나라사기
- 정규식
- 네이버페이사기
Archives
- Today
- Total
Ryu.log
[ECMAScript6] - Arrow function 화살표 함수 본문
1. Arrow function의 선언
Arrow function(화살표 함수)은 function 키워드 대신 화살표(=>)를 사용하여 간략한 방법으로 함수를 선언할 수 있다.
하지만 모든 경우 사용할 수 있는 것은 아니다. 문법은 아래와 같다.
// 매개변수 지정 방법 () => { ... } // 매개변수가 없을 경우 x => { ... } // 매개변수가 한개인 경우, 소괄호를 생략할 수 있다. (x, y) => { ... } // 매개변수가 여러개인 경우, 소괄호를 생략할 수 없다. // 함수 몸체 지정 방법 x => { return x * x } // single line block x => x * x // 함수 몸체가 한줄의 구문이라면 중괄호를 생략할 수 있으며 암묵적으로 return된다. 위 표현과 동일하다. () => { return { a: 1 }; } () => ({ a: 1 }) // 위 표현과 동일하다. 객체 반환시 소괄호를 사용한다. () => { // multi line block. const x = 10; return x * x; };
2. Arrow function의 호출
Arrow function은 익명 함수로만 사용할 수 있다. 따라서 Arrow function을 호출하기 위해서는 함수표현식을 사용한다.
// ES5 var pow = function (x) { return x * x; }; console.log(pow(10)); // 100
// ES6 const pow = x => x * x; console.log(pow(10)); // 100
또는 콜백함수로 사용할 수 있다. 이 경우 일반적인 함수 표현식보다 표현이 간결하다.
// ES5 var arr = [1, 2, 3]; var pow = arr.map(function (x) { // x는 요소값 return x * x; }); console.log(pow); // [ 1, 4, 9 ]
// ES6 const arr = [1, 2, 3]; const pow = arr.map(x => x * x); console.log(pow); // [ 1, 4, 9 ]
3. this
function 키워드를 사용하여 생성한 일반 함수와 Arrow function와의 가장 큰 차이점은 this이다.
3.1 일반 함수의 this
일반 함수의 경우, 해당 함수 호출 패턴에 따라 this에 바인딩되는 객체가 달라진다. 콜백함수 내부의 this는 전역 객체 window를 가리킨다.
function Prefixer(prefix) { this.prefix = prefix; } Prefixer.prototype.prefixArray = function (arr) { // (A) return arr.map(function (x) { return this.prefix + ' ' + x; // (B) }); }; var pre = new Prefixer('Hi'); console.log(pre.prefixArray(['Lee', 'Kim']));
'Prev-content' 카테고리의 다른 글
[ React-Tutorial-01 ] React 란? (0) | 2018.05.24 |
---|---|
[ECMAScript6] - Rest 파라미터 (0) | 2018.03.12 |
[ECMAScript6] - Template Literals 템플릿 리터럴 (0) | 2018.02.13 |
[ECMAScript6] - let, const와 블록 레벨 스코프 (0) | 2018.02.12 |
HTML5 Canvas란 무엇인가 (0) | 2018.01.02 |
Comments