在ES2018中,函数已经是一个很复杂的体系了,整理一下
第一种,普通函数:用function关键字定义的函数。
示例:
function foo(){
// code
}
第二种,箭头函数:用 => 运算符定义的函数。
示例:
const foo = () => {
// code
}
第三种,方法:在class中定义的函数。
示例:
class C {
foo(){
//code
}
}
第四种,生成器函数:用function * 定义的函数。
示例:
function foo*(){
// code
}
第五种,类:用class定义的类,实际上也是函数。
示例:
class Foo {
constructor(){
//code
}
}
第六/七/八种,异步函数:普通函数、箭头函数和生成器函数加上async关键字。
示例:
async function foo(){
// code
}
const foo = async () => {
// code
}
async function foo*(){
// code
}