首頁  >  文章  >  web前端  >  js箭頭函數和普通函數的區別

js箭頭函數和普通函數的區別

藏色散人
藏色散人原創
2019-04-13 10:45:084158瀏覽

這篇文章主要跟大家介紹javascript箭頭函數和普通函數的差別,希望對需要的朋友有幫助!

箭頭函數-ES6中引入的新特性-支援以JavaScript編寫簡潔的函數。雖然普通函數和箭頭函數的工作方式相似,但是它們之間有一些有趣的區別,如下所述。

語法

普通函數的語法:

let x = function function_name(parameters){ 
   // 函数体
};

普通函數的範例:

let square = function(x){ 
  return (x*x); 
}; 
console.log(sqaure(9));

輸出:

js箭頭函數和普通函數的區別

箭頭函數的語法:

let x = (parameters) => { 
    // 函数体
};

箭頭函數的範例:

var square = (x) => { 
    return (x*x); 
}; 
console.log(square(9));

輸出:

js箭頭函數和普通函數的區別

使用this關鍵字

#與普通函數不同,箭頭函數沒有自己的this。

例如:

let user = { 
    name: "GFG", 
    gfg1:() => { 
        console.log("hello " + this.name); 
    }, 
    gfg2(){        
        console.log("Welcome to " + this.name); 
    }   
 }; 
user.gfg1(); 
user.gfg2();

輸出:

js箭頭函數和普通函數的區別

#arguments物件的可用性

arguments物件在箭頭函數中不可用,但在普通函數中可用。

普通函數的範例:

let user = {       
    show(){ 
        console.log(arguments); 
    } 
}; 
user.show(1, 2, 3);

輸出:

js箭頭函數和普通函數的區別

箭頭函數的範例:

let user = {      
        show_ar : () => { 
        console.log(...arguments); 
    } 
}; 
user.show_ar(1, 2, 3);

輸出:

js箭頭函數和普通函數的區別

#使用new關鍵字

使用函數聲明或表達式創建的普通函數是“可構造的”和“可調用的”。由於普通函數是可建構的,因此可以使用'new'關鍵字來呼叫它們。但是,箭頭函數只是“可調用”而不是可構造的。因此,在嘗試使用new關鍵字建構不可建構的箭頭函數時,我們將得到一個運行時錯誤。

普通函數的範例:

let x = function(){ 
    console.log(arguments); 
}; 
new x =(1,2,3);

輸出:

js箭頭函數和普通函數的區別

箭頭函數的範例:

let x = ()=> { 
    console.log(arguments); 
}; 
new x(1,2,3);

輸出:

js箭頭函數和普通函數的區別

相關推薦:《javascript教學

以上是js箭頭函數和普通函數的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn