阿奎認為的箭頭函式和普通函式的區別

2021-10-10 01:09:57 字數 1011 閱讀 5958

//標準寫法

letfun

=(val)

=>

console.

log(

fun(

'阿奎'))

//簡易寫法

//如果只有乙個引數可以將()省略,如果只有乙個表示式不需要換行可以省略{}和return

letfun

= val => val

console.

log(

fun(

'阿奎'))

一、箭頭函式不能作為建構函式,不能使用new例項化

new例項化函式步驟

1、new 建立乙個空物件

2、執行構造器

3、把所有this替換成

4、最終返回這個空物件

箭頭函式之所以不能例項化,是因為他沒有自己的this

,不能執行下面第三步

1、new 建立乙個空物件

2、執行構造器

3、把所有this替換成

4、最終返回這個空物件

二、箭頭函式不繫結arguments,取而代之需要用展開運算子解決...解決

function

fun(

)fun(1

,2,3

,4,5

)let

fun=

(...argm)

=>

fun(1,

2,3,

4,5)

三、箭頭函式沒有自己的this,會捕獲其所在的上下文的this值,作為自己的this值

箭頭函式的this在定義的時候就 "固定" 不變了

四、箭頭函式沒有原型屬性

letfun=()

=>

console.

log(fun.prototype)

//undefined

function

fun1()

console.

log(fun1.prototype)

箭頭函式和普通函式的區別

面試時被問到箭頭函式和普通函式的區別。借用別人的乙個栗子 function make var testfunc make.call testfunc testfunc.call object object可以看到箭頭函式在定義之後,this 就不會發生改變了,無論用什麼樣的方式呼叫它,this 都不...

普通函式和箭頭函式的區別

箭頭函式 let fun 普通函式 function fun 箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return。1 箭頭函式是匿名函式,不能作為建構函式,不能使用new let ...

普通函式和箭頭函式的區別

一 箭頭函式全是匿名函式,普通函式也可以有匿名函式,也可以有具名函式。function a let a function let a 二 箭頭函式不能用於建構函式,不能使用new。三 箭頭函式不繫結this,會捕捉其所在上下文的this指,會作為自己的this值,沒有辦法改變其指向 var obj ...