箭頭函式與普通函式的區別
箭頭函式是ES2015新增,具體參閱JavaScript 箭頭函式一章節。
只要明確知曉箭頭函式的用法,它與普通函式區別自然明晰。
但是對於初學者來說,對於箭頭函式的熟練使用與深刻理解需要一個過程。
本文總結一下普通函式與箭頭函式的區別,希望能夠使這一過程加速。
一.外形不同:
箭頭函式使用箭頭定義,普通函式中沒有。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼// 普通函式 function func(){ // code } // 箭頭函式 let func=()=>{ // code }
這種表象的區別實在太明顯,無需多做介紹。
二.箭頭函式全都是匿名函式:
普通函式可以有匿名函式,也可以有具名函式。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼// 具名函式 function func(){ // code } // 匿名函式 let func=function(){ // code }
程式碼說明如下:
(1).第一個函式是具名函式,使用嚴格的函式宣告語法建立。
(2).第二個是匿名函式,其實它的本質是宣告一個變數並賦值為一個匿名函式物件(函式沒有名稱)。
而箭頭函式全都是匿名函式,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼// 箭頭函式全都是匿名函式 let func=()=>{ // code }
三.箭頭函式不能用於建構函式:
普通函式可以用於建構函式,以此建立物件例項。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼執行程式碼function Antzone(webName,age){ this.webName=webName; this.age=age; } let antzone=new Antzone("螞蟻部落",5); console.log(antzone.webName);
程式碼執行效果截圖如下:
Antzone被用作建構函式,通過它可以建立物件例項。
但是箭頭函式並不能用作建構函式。
四.箭頭函式中this的指向不同:
this一直是讓初學者比較頭疼的概念。
在普通函式中,this總是指向呼叫它的物件或者,如果用作建構函式,它指向建立的物件例項。
具體參閱如下兩篇文章:
(1).JavaScript this詳解一章節。
(2).JavaScript建構函式一章節。
在箭頭函式中,this的指向發生了本質變化,為了節省篇幅,本文不做介紹。
具體參閱箭頭函式this指向詳解一章節。
五.箭頭函式不具有arguments物件:
每一個普通函式呼叫後都具有一個arguments物件,用來儲存實際傳遞的引數。
但是箭頭函式並沒有此物件。
關於arguments物件可以參閱JavaScript arguments物件詳解一章節。
六.其他區別:
(1).箭頭函式不能Generator函式。
(2).箭頭函式不具有prototype原型物件。
(3).箭頭函式不具有super。
(4).箭頭函式不具有new.target。
相關文章
- 箭頭函式與普通函式區別函式
- # 普通函式和箭頭函式的區別函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- 簡述箭頭函式和普通函式的區別函式
- 箭頭函式和普通函式的10個區別函式
- Day 59/100 箭頭函式和普通函式的區別函式
- 面試題:箭頭函式和普通函式的區別面試題函式
- 詳解箭頭函式和普通函式的區別以及箭頭函式的注意事項、不適用場景函式
- 2022年了你還不瞭解箭頭函式與普通函式的區別嗎?函式
- 前端面試ES6系列:箭頭函式和普通函式的區別前端面試函式
- 建構函式與普通函式的區別函式
- 深入理解箭頭函式和傳統函式的區別函式
- 箭頭函式函式
- JS中的箭頭函式與thisJS函式
- 箭頭函式中的this函式
- TypeScript 箭頭函式TypeScript函式
- JavaScript 箭頭函式JavaScript函式
- JS箭頭函式JS函式
- 箭頭函式this指向的陷阱函式
- 箭頭函式的this指向(二)函式
- 有關箭頭函式函式
- 箭頭函式詳解函式
- 從settTimeout到匿名函式、箭頭函式之() => {}函式
- vue2專案中 箭頭函式和普通函式里面 this的指向有何不同?Vue函式
- react裡面bind與箭頭函式React函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- 箭頭函式this指向詳解函式
- ES6箭頭函式函式
- setTimeout中的this指向問題和箭頭函式結合的區別函式
- fill函式與memset函式的區別(c++)函式C++
- 教辨別this指向問題 包括箭頭函式函式
- 普通函式與函式模板呼叫規則函式
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- ES6箭頭函式的使用函式
- 函式宣告與函式表示式有什麼區別?函式
- 2020-10-18 箭頭函式函式
- JavaScript(ES6)—箭頭函式JavaScript函式
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式