es6新增的箭頭函數(shù)

箭頭和普通函數(shù)的區(qū)別是什么?

1.第一個(gè)區(qū)別就是寫(xiě)法上的區(qū)別?箭頭函數(shù)省略了聲明函數(shù)的關(guān)鍵字function?在函數(shù)和代碼塊之間用一個(gè)=>代替

2.箭頭函數(shù)中的this始終指向箭頭函數(shù)聲明時(shí)所在的對(duì)象

3.普通函數(shù)中的this指向調(diào)用函數(shù)的對(duì)象

例:

<script>

function?fn()?{

??????console.log(this)

????}

fn()(這種調(diào)用等同于window.fn(),省略了window,此時(shí)函數(shù)this指向window


?let?obj?=?{

??????name:?'zhangsan',

??????fun()?{

????????console.log(this)

??????}

????}

????obj.fun()(函數(shù)被obj調(diào)用,所以此是this指向obj實(shí)例對(duì)象


??var?fn?=?()?=>?{

??????console.log(this)

????}

? ? fn()(箭頭函數(shù)中的this指向始終指向箭頭函數(shù)聲明時(shí)所在的對(duì)象,函數(shù)在window中聲明,所以this指向window)

</script>


箭頭函數(shù)的寫(xiě)法都有哪些?

第一種寫(xiě)法?當(dāng)箭頭函數(shù)只接受一個(gè)參數(shù)?并且返回值是這個(gè)參數(shù)的時(shí)候,當(dāng)箭頭函數(shù)有且僅有一個(gè)參數(shù)時(shí)可以省略()?

let?fn?=?a?=>?a

????//?上面的箭頭函數(shù)等價(jià)于下面的這種寫(xiě)法

????let?fn?=?function(a)?{

??????return?a

????}

第二種寫(xiě)法?當(dāng)箭頭函數(shù)只接受一個(gè)參數(shù)?并且返回的是一個(gè)簡(jiǎn)單的邏輯的時(shí)候

let?fn?=?a?=>?a+1

?//?上面的箭頭函數(shù)等價(jià)于下面的這種寫(xiě)法

????let?fu?=?function(a)?{

??????return?a?+?1

????}

? ?第三種寫(xiě)法是當(dāng)箭頭函數(shù)接受多個(gè)數(shù)據(jù)?并且返回一個(gè)簡(jiǎn)單的邏輯的時(shí)候

?let?fn?=?(a,?b,?c)?=>?a?+?b?+?c?

?//?上面的箭頭函數(shù)等價(jià)于下面的這種寫(xiě)法

????let?fn?=?function(a,?b,?c)?{

??????return?a?+?b?+?c

????}

箭頭函數(shù)的第四種寫(xiě)法?如果使用箭頭函數(shù)只是想單純的返回一個(gè)對(duì)象?則需要給對(duì)象添加()

let?fn?=?()?=>?({name:?'zhangsan',?age:?15})

箭頭的函數(shù)的第五種寫(xiě)法

?let?fn?=?(a,?b,?c)?=>?{

??????console.log(a?+?b?+?c)

????}

????fn(1,?2,?3)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容