前端筆記(關於箭頭函式與普通函式的區別的理解)

2022-02-17 06:03:21 字數 1513 閱讀 1793

大家都知道箭頭函式es6新增的函式宣告方式,當然普通函式還是可以繼續使用的。我以前一直只知道箭頭函式只對this指向有影響,但是沒法說清楚具體有哪些影響,因此今天來總結整理一下。

1.普通函式的this指向當前呼叫者物件箭頭函式的this指向其上下文

let obj=,

b:()=>

}obj.a()

obj.b()

2.箭頭函式不能作為建構函式,所以也不能new,new就會報錯。普通函式可以

3.箭頭函式不能使用arguments,但可以使用...rest代替。rest引數也能在普通函式中使用,用於函式中傳遞不定引數

arguments是類陣列,需要遍歷進行使用。arguments和rest都必須寫在最後面

const a=(...a)=>

a(1,2,3,4)//

陣列const b=function

()b(1,2,3,4)//

類陣列

4.箭頭函式沒有原型物件,普通函式有

//

原型區別

const f=()=>{}

const g=function

(){}

console.log(f.prototype)

//undefined

console.log(g.prototype)//

原型物件

拓展知識:

此處使用call後this就不是引數1的物件了,然後自動呼叫f函式。

//

改變this指向

const f=function

(a)f()

//undefined

f.call(,2)//

3

2.箭頭函式無法改變this指向,這個this還是代表上下文,不是那個物件

const f=()=>

f.call()//

window

菜鳥看前端(箭頭函式與普通函式區別)

一,箭頭函式是匿名函式不能作為建構函式不能使用newlet fun let f newfun 報錯 uncaught typeerror fun is not a constructor箭頭函式只有乙個表示式時可以把 return省略掉let fun 你好 let f fun console.log...

箭頭函式與普通函式區別

1 箭頭函式是匿名函式,不能作為建構函式,不能使用new 2 箭頭函式不繫結arguments,取而代之用rest引數 解決 3 this的作用域不同,箭頭函式不繫結this,會捕獲函式定義的上下文中的this值,作為自己的this值,且一直不變 4 箭頭函式沒有原型物件 5 箭頭函式不能當作gen...

箭頭函式 普通函式

箭頭函式的語法比普通函式更簡潔,是乙個匿名函式,不能作為建構函式,且不能使用new 普通函式 letfun 普通函式 function fun 箭頭函式有兩種格式 一種是和return 另一種是把二者省略掉 1 1.不能使用newlet fun let fn newfun 1.function on...