大家都知道箭頭函式是es6新增的函式宣告方式,當然普通函式還是可以繼續使用的。我以前一直只知道箭頭函式只對this指向有影響,但是沒法說清楚具體有哪些影響,因此今天來總結整理一下。
1.普通函式的this指向當前呼叫者物件。箭頭函式的this指向其上下文
let obj=,2.箭頭函式不能作為建構函式,所以也不能new,new就會報錯。普通函式可以b:()=>
}obj.a()
obj.b()
3.箭頭函式不能使用arguments,但可以使用...rest代替。rest引數也能在普通函式中使用,用於函式中傳遞不定引數
arguments是類陣列,需要遍歷進行使用。arguments和rest都必須寫在最後面。
const a=(...a)=>4.箭頭函式沒有原型物件,普通函式有a(1,2,3,4)//
陣列const b=function
()b(1,2,3,4)//
類陣列
//原型區別
const f=()=>{}
const g=function
(){}
console.log(f.prototype)
//undefined
console.log(g.prototype)//
原型物件
拓展知識:
此處使用call後this就不是引數1的物件了,然後自動呼叫f函式。
//2.箭頭函式無法改變this指向,這個this還是代表上下文,不是那個物件改變this指向
const f=function
(a)f()
//undefined
f.call(,2)//
3
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...