1. 程式人生 > 實用技巧 >js存在的幾種函式

js存在的幾種函式

函式

第一種,普通函式:用 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
 }
  ES6 以來,大量加入的新語法極大地方便了我們程式設計的同時,也增加了很多我們理解的心智負擔。要想認識這些函式的執行上下文切換,我們必須要對它們行為上的區別有所瞭解。對普通變數而言,這些函式並沒有本質區別,都是遵循了“繼承定義時環境”的規則,它們的一個行為差異在於 this 關鍵字。