摘要:不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以使用命令,否則會(huì)拋出一個(gè)錯(cuò)誤。正是因?yàn)樗鼪]有,所以也就不能用作構(gòu)造函數(shù)??偨Y(jié)箭頭函數(shù)的永遠(yuǎn)指向其上下文的,任何方法都改變不了其指向,如普通函數(shù)的指向調(diào)用它的那個(gè)對(duì)象
一、前言
首先看下直觀的區(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ù)有幾個(gè)使用注意點(diǎn)。
函數(shù)體內(nèi)的this對(duì)象,就是定義時(shí)所在的對(duì)象,而不是使用時(shí)所在的對(duì)象。
不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以使用new命令,否則會(huì)拋出一個(gè)錯(cuò)誤。
不可以使用arguments對(duì)象,該對(duì)象在函數(shù)體內(nèi)不存在。如果要用,可以用 rest 參數(shù)代替。
不可以使用yield命令,因此箭頭函數(shù)不能用作 Generator 函數(shù)。
上面四點(diǎn)中,第一點(diǎn)尤其值得注意。this對(duì)象的指向是可變的,但是在箭頭函數(shù)中,它是固定的。把動(dòng)態(tài)this轉(zhuǎn)換為靜態(tài)this
長期以來,JavaScript 語言的this對(duì)象一直是一個(gè)令人頭痛的問題,在對(duì)象方法中使用this,必須非常小心。箭頭函數(shù)”綁定”this,很大程度上解決了這個(gè)困擾。
箭頭函數(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)用它的那個(gè)對(duì)象
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/103641.html
摘要:但是因?yàn)榧^函數(shù)沒有自己的,它的其實(shí)是繼承了外層執(zhí)行環(huán)境中的,且指向永遠(yuǎn)不會(huì)隨在哪里調(diào)用被誰調(diào)用而改變,所以箭頭函數(shù)不能作為構(gòu)造函數(shù)使用,或者說構(gòu)造函數(shù)不能定義成箭頭函數(shù),否則用調(diào)用時(shí)會(huì)報(bào)錯(cuò)報(bào)錯(cuò)箭頭函數(shù)沒有自己的箭頭函數(shù)沒有自己的對(duì)象。 這篇文章我們來了解一下ES6中的箭頭函數(shù)。首先會(huì)介紹一下箭頭函數(shù)的基本語法,因?yàn)榛菊Z法比較好理解,我們用示例做簡單介紹即可。之后,我們重點(diǎn)來討論一下...
摘要:第二種情況是箭頭函數(shù)的如果指向普通函數(shù)它的繼承于該普通函數(shù)。箭頭函數(shù)的指向全局,使用會(huì)報(bào)未聲明的錯(cuò)誤。 showImg(https://segmentfault.com/img/remote/1460000018610072?w=600&h=400); 箭頭函數(shù)是ES6的API,相信很多人都知道,因?yàn)槠湔Z法上相對(duì)于普通函數(shù)更簡潔,深受大家的喜愛。就是這種我們?nèi)粘i_發(fā)中一直在使用的API...
摘要:之前寫過一篇文章面試官問能否模擬實(shí)現(xiàn)的和方法就是利用對(duì)象上的函數(shù)指向這個(gè)對(duì)象,來模擬實(shí)現(xiàn)和的。雖然實(shí)際使用時(shí)不會(huì)顯示返回,但面試官會(huì)問到。非嚴(yán)格模式下,和,指向全局對(duì)象 前言 面試官出很多考題,基本都會(huì)變著方式來考察this指向,看候選人對(duì)JS基礎(chǔ)知識(shí)是否扎實(shí)。讀者可以先拉到底部看總結(jié),再谷歌(或各技術(shù)平臺(tái))搜索幾篇類似文章,看筆者寫的文章和別人有什么不同(歡迎在評(píng)論區(qū)評(píng)論不同之處),...
閱讀 667·2023-04-25 15:49
閱讀 3121·2021-09-22 15:13
閱讀 1258·2021-09-07 10:13
閱讀 3481·2019-08-29 18:34
閱讀 2562·2019-08-29 15:22
閱讀 512·2019-08-27 10:52
閱讀 689·2019-08-26 18:27
閱讀 3023·2019-08-26 13:44