Lambda란?
The term lambda function may refer to:
- In mathematics:
- Dirichlet lambda function λ(s) = (1 – 2−s)ζ(s) where ζ is the Riemann zeta function;
- Liouville function λ(n) = (–1)Ω(n);
- Mangoldt function Λ(n) = log p if n is a positive power of the prime p;
- Modular lambda function;
- In computing:
- Lambda calculus in computer science;
- Anonymous function in programming.
출처 : https://en.wikipedia.org/wiki/Lambda_function
람다 function 이란 함수 이름이 없는 익명/무명 함수 지칭
sample
//ES6 arrow function odds = evens.map(v => v + 1) pairs = evens.map(v => ({ even: v, odd: v + 1 })) nums = evens.map((v, i) => v + i) nums.forEach(v => { if (v % 5 === 0) fives.push(v) }) //ES5 에서 위와 같은 로직을 작성하려면 odds = evens.map(function (v) { return v + 1; }); pairs = evens.map(function (v) { return { even: v, odd: v + 1 }; }); nums = evens.map(function (v, i) { return v + i; }); nums.forEach(function (v) { if (v % 5 === 0) fives.push(v); });
Syntax
1. 파라미터가 하나일 때
(param) => (코드);
2. 파라미터가 하나일땐 소괄호() 생략 가능
param => 코드
3. 파라미터가 없을때
() => (코드);
4. 표현식(예 : 1+2) 결과 return
(param) => 표현식
5. return 할 { key: value} 를 소괄호 안에 작성
(param) => ({key: value});
6. 파라미터가 다수 일때
(param1, param2, ...) => ( 코드 );
7. rest 파라미터
(param1, param2, ...rest )=> ( 코드 );
8. 기타
(param1, param2 123) => ( 코드 );
([onw, two] = [10, 20]) => ( 코드 );
({key : value} = { sumValue : 10 + 20 }) => ( 코드 );
Lexical this
인스턴스와 오브젝트에서 this 참조가 다름
Lexical this
arrow function instance 내에서 this component 는 기존의 function() {} 의 this component 와 다르다. 아래를 참조하자!!
this.nums.forEach((v) => { if (v % 5 === 0) this.fives.push(v) })
// variant 1 var self = this; this.nums.forEach(function (v) { if (v % 5 === 0) self.fives.push(v); }); // variant 2 (since ECMAScript 5.1 only) this.nums.forEach(function (v) { if (v % 5 === 0) this.fives.push(v); }.bind(this));
다르니까 잘 주의해서 쓰세요 :) ㅋㅋ
'ECMAScript 2015, ECMAScript 6th Edition' 카테고리의 다른 글
6. Array-like (0) | 2016.09.07 |
---|---|
5. rest (0) | 2016.09.07 |
4. spread (0) | 2016.09.06 |
3. iterable protocol (0) | 2016.09.04 |
1. let, const (0) | 2016.09.04 |