亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

js中箭頭函數(shù)和普通函數(shù)的區(qū)別

TerryCai / 688人閱讀

摘要:不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以使用命令,否則會拋出一個錯誤。正是因?yàn)樗鼪]有,所以也就不能用作構(gòu)造函數(shù)??偨Y(jié)箭頭函數(shù)的永遠(yuǎn)指向其上下文的,任何方法都改變不了其指向,如普通函數(shù)的指向調(diào)用它的那個對象

一、前言

首先看下直觀的區(qū)別

    // 箭頭函數(shù) 
    let fun = () => {
        console.log("lalalala");
    }
    
    // 普通函數(shù) 
    function fun() {
        console.log("lalla");
    }
    
二、定義

首先我認(rèn)為箭頭函數(shù)是匿名函數(shù),不能作為構(gòu)造函數(shù),不能使用new
然后借鑒阮一峰老師的es6教程里第七章(函數(shù)擴(kuò)展)里面的第五小節(jié)箭頭函數(shù)來看看他的定義

箭頭函數(shù)有幾個使用注意點(diǎn)。

函數(shù)體內(nèi)的this對象,就是定義時所在的對象,而不是使用時所在的對象。

不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以使用new命令,否則會拋出一個錯誤。

不可以使用arguments對象,該對象在函數(shù)體內(nèi)不存在。如果要用,可以用 rest 參數(shù)代替。

不可以使用yield命令,因此箭頭函數(shù)不能用作 Generator 函數(shù)。

上面四點(diǎn)中,第一點(diǎn)尤其值得注意。this對象的指向是可變的,但是在箭頭函數(shù)中,它是固定的。
把動態(tài)this轉(zhuǎn)換為靜態(tài)this

長期以來,JavaScript 語言的this對象一直是一個令人頭痛的問題,在對象方法中使用this,必須非常小心。箭頭函數(shù)”綁定”this,很大程度上解決了這個困擾。

箭頭函數(shù)可以讓this指向固定化,這種特性很有利于封裝回調(diào)函數(shù)。

原理: this指向的固定化,并不是因?yàn)榧^函數(shù)內(nèi)部有綁定this的機(jī)制,實(shí)際原因是箭頭函數(shù)根本沒有自己的this,導(dǎo)致內(nèi)部的this就是外層代碼塊的this。正是因?yàn)樗鼪]有this,所以也就不能用作構(gòu)造函數(shù)。
總結(jié)

箭頭函數(shù)的 this 永遠(yuǎn)指向其上下文的 this ,任何方法都改變不了其指向,如 call() , bind() , apply()

普通函數(shù)的this指向調(diào)用它的那個對象

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/103641.html

相關(guān)文章

  • ES6 - 箭頭函數(shù)箭頭函數(shù)普通函數(shù)區(qū)別總結(jié)

    摘要:但是因?yàn)榧^函數(shù)沒有自己的,它的其實(shí)是繼承了外層執(zhí)行環(huán)境中的,且指向永遠(yuǎn)不會隨在哪里調(diào)用被誰調(diào)用而改變,所以箭頭函數(shù)不能作為構(gòu)造函數(shù)使用,或者說構(gòu)造函數(shù)不能定義成箭頭函數(shù),否則用調(diào)用時會報(bào)錯報(bào)錯箭頭函數(shù)沒有自己的箭頭函數(shù)沒有自己的對象。 這篇文章我們來了解一下ES6中的箭頭函數(shù)。首先會介紹一下箭頭函數(shù)的基本語法,因?yàn)榛菊Z法比較好理解,我們用示例做簡單介紹即可。之后,我們重點(diǎn)來討論一下...

    scola666 評論0 收藏0
  • 普通函數(shù)箭頭函數(shù)區(qū)別以及箭頭函數(shù)注意事項(xiàng)、不適用場景

    摘要:第二種情況是箭頭函數(shù)的如果指向普通函數(shù)它的繼承于該普通函數(shù)。箭頭函數(shù)的指向全局,使用會報(bào)未聲明的錯誤。 showImg(https://segmentfault.com/img/remote/1460000018610072?w=600&h=400); 箭頭函數(shù)是ES6的API,相信很多人都知道,因?yàn)槠湔Z法上相對于普通函數(shù)更簡潔,深受大家的喜愛。就是這種我們?nèi)粘i_發(fā)中一直在使用的API...

    paulquei 評論0 收藏0
  • 如何秒懂 this

    日常開發(fā)中經(jīng)常會遇到 this 指向的 bug,郁悶好久才猛然醒悟,痛定思痛,將 this 做個匯總,以便在日后的開發(fā)工作中少走彎路。注:本文講述只針對瀏覽器環(huán)境。一、全局執(zhí)行??showImg(https://segmentfault.com/img/bVbq4NJ?w=277&h=109);可以看出在全局作用域中 this 指向當(dāng)前的全局對象 Window。二、函數(shù)中執(zhí)行 非嚴(yán)格模式中 ??s...

    Lin_YT 評論0 收藏0
  • 面試官問:JSthis指向

    摘要:之前寫過一篇文章面試官問能否模擬實(shí)現(xiàn)的和方法就是利用對象上的函數(shù)指向這個對象,來模擬實(shí)現(xiàn)和的。雖然實(shí)際使用時不會顯示返回,但面試官會問到。非嚴(yán)格模式下,和,指向全局對象 前言 面試官出很多考題,基本都會變著方式來考察this指向,看候選人對JS基礎(chǔ)知識是否扎實(shí)。讀者可以先拉到底部看總結(jié),再谷歌(或各技術(shù)平臺)搜索幾篇類似文章,看筆者寫的文章和別人有什么不同(歡迎在評論區(qū)評論不同之處),...

    warnerwu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<