箭头函数表达式的语法比函数表达式更短,并且不绑定自己的this,arguments,super或 new.target。这些函数表达式最适合用于非方法函数,并且它们不能用作构造函数。
基础语法
1 | (param1,param2,...,paramN)=>{retrun expression} |
高级语法
1 | //加括号的函数体返回对象字面表达式: |
描述
引入箭头函数的作用:更简短的函数并且不绑定this
- 更短的函数
1
2
3
4
5
6
7
8
9
10
11
12
13var materials = [
'Hydrogen',
'Helium',
'Lithium'
];
materials.map(function(materials){
return materials.lemght
}); //[8,6,7]
materials.map(maters=>{
return materials.length
}); //[8,6,7]
materials.map(masters=>materials.length);
// [8,6,7]
注:{}里表达式,需要 return,才会有返回值
- 不绑定this
在箭头函数出现之前,每一个新创建的函数都有自己的this(在构造函数中是一个新对象,在严格模式的函数调用中是undefined,如果该函数被称为‘对象方法’则是基础对象)1
2