- Arrow functions don’t have their own bindings to
this
,arguments
orsuper
, and should not be used asmethods
. - Arrow functions don’t have access to the
new.target
keyword. - Arrow functions aren’t suitable for
call
,apply
andbind
methods, which generally rely on establishing a scope. - Arrow functions cannot be used as constructors.
- Arrow functions cannot use
yield
, within its body.
An arrow function uses () =>
instead of function ()
:
(param1, paramN) => {
let a = 1;
return a + param1 + paramN;
}
// Traditional Anonymous Function
function (a){
return a + 100;
}
// Arrow Function Break Down
// 1. Remove the word "function" and place arrow between the argument and opening body bracket
(a) => {
return a + 100;
}
// 2. Remove the body braces and word "return" -- the return is implied.
(a) => a + 100;
// 3. Remove the argument parentheses
a => a + 100;