- Arrow functions don’t have their own bindings to
this,argumentsorsuper, and should not be used asmethods. - Arrow functions don’t have access to the
new.targetkeyword. - Arrow functions aren’t suitable for
call,applyandbindmethods, 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;