js存在的幾種函式
阿新 • • 發佈:2020-10-10
函式
第一種,普通函式:用 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 關鍵字。