摘要:帶有塊體的箭頭函數(shù)不會(huì)自動(dòng)返回值。使用箭頭函數(shù)創(chuàng)建普通對(duì)象時(shí)有一點(diǎn)需要注意。箭頭函數(shù)內(nèi)部的值始終從封閉范圍繼承。對(duì)于將使用語法調(diào)用的方法,請(qǐng)使用非箭頭函數(shù)。
箭頭函數(shù)的格式
// ES5 var selected = allJobs.filter(function (job) { return job.isSelected(); }); // ES6 箭頭函數(shù) var selected = allJobs.filter(job => job.isSelected()); // ES6 $("#confetti-btn").click(event => { playTrumpet(); fireConfettiCannon(); });
1、要編寫具有多個(gè)參數(shù)(或沒有參數(shù)或默認(rèn)值或解構(gòu)參數(shù))的函數(shù),在參數(shù)列表周圍添加括號(hào)。this指向
2、帶有塊體的箭頭函數(shù)不會(huì)自動(dòng)返回值。請(qǐng)使用return聲明。
3、使用箭頭函數(shù)創(chuàng)建普通對(duì)象時(shí)有一點(diǎn)需要注意。始終將對(duì)象括在括號(hào)中:
箭頭函數(shù)沒有自己的this值。this箭頭函數(shù)內(nèi)部的值始終從封閉范圍繼承。
對(duì)于將使用object.method()語法調(diào)用的方法,請(qǐng)使用非箭頭函數(shù)。這些函數(shù)將從調(diào)用者那里獲得有意義的 this值。其他所有內(nèi)容都使用箭頭功能。
{ ... addAll: function addAll(pieces) { var self = this; _.each(pieces, function (piece) { self.add(piece); }); }, ... } // ES6 { ... addAll: function addAll(pieces) { _.each(pieces, piece => this.add(piece)); }, ... }箭頭函數(shù)與普通函數(shù)得區(qū)別
箭頭和非箭頭函數(shù)之間還有一個(gè)小的區(qū)別:箭頭函數(shù)也沒有自己的arguments對(duì)象。
普通函數(shù):
1、函數(shù)作為全局函數(shù)被調(diào)用時(shí),this指向全局對(duì)象
2、函數(shù)作為對(duì)象中的方法被調(diào)用時(shí),this指向該對(duì)象
3、函數(shù)作為構(gòu)造函數(shù)的時(shí)候,this指向構(gòu)造函數(shù)new出來的新對(duì)象
4、還可以通過call,apply,bind改變this的指向
1、箭頭函數(shù)沒有this,函數(shù)內(nèi)部的this來自于父級(jí)最近的非箭頭函數(shù),并且不能改變this的指向。
2、箭頭函數(shù)沒有super
3、箭頭函數(shù)沒有arguments
4、箭頭函數(shù)沒有new.target綁定。
5、不能使用new
6、沒有原型
7、不支持重復(fù)的命名參數(shù)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97617.html
摘要:第二種情況是箭頭函數(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...
摘要:但是因?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ù)的的值不再根據(jù)調(diào)用時(shí)上下文確定,而是像普通變量那樣根據(jù)定義時(shí)的作用域鏈進(jìn)行查找。箭頭函數(shù)中的依然要根據(jù)定義時(shí)的作用域鏈進(jìn)行查找。知乎這篇文章對(duì)箭頭函數(shù)的一些不適合的場景進(jìn)行了總結(jié),可以作為參考。 es6 - 箭頭函數(shù) 哇,箭頭函數(shù)...,聽起來好NB,但是如果你知道它是因?yàn)槭褂昧?>這樣類似箭頭的符號(hào) ,所以才叫箭頭函數(shù)。 瞬間感覺:呵,這名字起的...。 es6增加了...
摘要:因?yàn)樗划a(chǎn)生屬于它自己上下文的箭頭函數(shù)的另一個(gè)用處是簡化回調(diào)函數(shù)。箭頭函數(shù)使用場景箭頭函數(shù)適合于無復(fù)雜邏輯或者無副作用的純函數(shù)場景下,例如用在的回調(diào)函數(shù)定義中,另外目前等庫,都大量使用箭頭函數(shù),直接定義的情況已經(jīng)很少了。 0.為什么會(huì)出現(xiàn)箭頭函數(shù)? 1.傳統(tǒng)的javascript函數(shù)語法并沒有提供任何的靈活性,每一次你需要定義一個(gè)函數(shù)時(shí),你都必須輸入function () {},這至少...
摘要:有傳聞?wù)f,箭頭函數(shù)的語法,是受到了的影響,并且它與中的語法一樣,共享上下文。箭頭函數(shù)是新增加的一個(gè)特性。箭頭函數(shù)沒有自己的值,其值是通過繼承其它傳入對(duì)象而獲得的通常來說是上一級(jí)外部函數(shù)的的指向。 箭頭函數(shù) 1. 簡單的定義: 胖箭頭函數(shù) Fat arrow functions,又稱箭頭函數(shù),是一個(gè)來自ECMAScript 2015(又稱ES6)的全新特性。有傳聞?wù)f,箭頭函數(shù)的語法=>,...
摘要:說明箭頭函數(shù)本質(zhì)還是函數(shù),我們來看看他與中普通函數(shù)的區(qū)別,先看看寫法上的區(qū)別。箭頭函數(shù)會(huì)捕獲其所在上下文的值,作為自己的值。箭頭函數(shù)不可變。這些方法也無法改變箭頭函數(shù)的指向。箭頭函數(shù)不能用關(guān)鍵字來實(shí)例化對(duì)象,不然會(huì)報(bào)錯(cuò)。 說明 箭頭函數(shù)本質(zhì)還是函數(shù),我們來看看他與JavaScript中普通函數(shù)的區(qū)別,先看看寫法上的區(qū)別。 showImg(https://segmentfault...
閱讀 2914·2021-10-26 09:49
閱讀 3254·2021-10-14 09:42
閱讀 2102·2021-09-13 10:31
閱讀 2621·2019-08-30 11:13
閱讀 2986·2019-08-29 16:31
閱讀 1116·2019-08-29 13:58
閱讀 1880·2019-08-29 12:12
閱讀 3624·2019-08-26 13:48