摘要:箭頭函數(shù)是用新的語法書寫的匿名函數(shù)如等同于下面使用的寫法可能一開始無法接受,但慢慢的會(huì)發(fā)現(xiàn)箭頭函數(shù)帶來的快感不言而喻。作為一個(gè)后端人士希望也能支持該語法。
箭頭函數(shù)(Arrows), 是用新的 => 語法書寫的匿名函數(shù), 如:
[1, 2, 3].map(n => n + 1);
等同于下面使用ES5的寫法:
[1, 2, 3].map(function(n) { return n + 1; });
可能一開始無法接受,但慢慢的會(huì)發(fā)現(xiàn)箭頭函數(shù)帶來的快感不言而喻。作為一個(gè)PHP后端人士希望PHP也能支持該語法, ?。
一般寫法, 如計(jì)算兩個(gè)數(shù)字之和, 并返回:
(arg1, arg2) => { let arg3 = arg1 + arg2 return arg3 }
不用寫function關(guān)鍵字, 但是上面的寫法,也感覺不出來有多少簡(jiǎn)化,我們來看看幾種情況:
如果只有一個(gè)參數(shù),可以不用寫括號(hào)
n => { return n + 1 }
等價(jià)于
(n) => { return n + 1 }
如果函數(shù)只有一行執(zhí)行代碼,可以省去花括號(hào),寫在一行
n => alert(n)
等價(jià)于
n => { alert(n) }
寫在一行的時(shí)候,也可以省略return關(guān)鍵字
n => n + 1
等價(jià)于
n => { return n + 1 }
沒有參數(shù)的時(shí)候,則必須用(), 如
() => alert("ES2015 Rocks!");
語法介紹完畢,需要特別強(qiáng)調(diào)并指出的是:
和用function關(guān)鍵字命名的函數(shù)不同的是,箭頭函數(shù)體內(nèi)和它的所在的塊區(qū)域共享同一個(gè)this , 舉個(gè)例子:
直接在Chrome Console中運(yùn)行以下代碼:
class Zoo { constructor(name, animals = []) { this.name = name; this.animals = animals; } list() { this.animals.map(animal => { console.log(this.name + "里有" + animal); }); } list2() { this.animals.map(function() { console.log(this.name + "里有" + animal); }); } } let zoo = new Zoo("小紅山動(dòng)物園", ["大象", "猴子", "長(zhǎng)頸鹿"]); zoo.list(); zoo.list2();
以上代碼輸出:
> 小紅山動(dòng)物園里有大象 > 小紅山動(dòng)物園里有猴子 > 小紅山動(dòng)物園里有長(zhǎng)頸鹿 > Uncaught TypeError: Cannot read property "name" of undefined(…)
這就是文檔中所說的:
Unlike functions, arrows share the same lexical this as their surrounding code.
相信你也已經(jīng)掌握箭頭函數(shù)的用法了吧?歡迎繼續(xù)瀏覽下一章節(jié)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/83730.html
摘要:常量變量先說說常量和變量的概念吧,常量是說那種進(jìn)行一次賦值后不會(huì)更改的值,比如說游戲賬戶的,變量是說賦值后有更改的需求的,比如游戲名,游戲密碼。常用實(shí)例交換變量的值提取數(shù)據(jù)解構(gòu)賦值對(duì)提取對(duì)象中的數(shù)據(jù),尤其有用。 本系列文章適合快速掌握 ES6 入門語法,想深入學(xué)習(xí) ES6 的小伙伴可以看看阮一峰老師的《ECMAScript 6 入門》 學(xué)習(xí) 20% 的知識(shí)完成 80% 的工作 關(guān)于 ...
摘要:前端日?qǐng)?bào)精選如何在非項(xiàng)目中使用知乎專欄編碼規(guī)范最常被遺忘的性能優(yōu)化瀏覽器緩存?zhèn)€人文章譯統(tǒng)一樣式語言掘金新的開發(fā)者提及最多的個(gè)視頻眾成翻譯中文第期在中使用譯統(tǒng)一樣式語言掘金前端現(xiàn)狀答題救不了前端新人相學(xué)長(zhǎng)懟前端歲以 2017-06-29 前端日?qǐng)?bào) 精選 如何在非 React 項(xiàng)目中使用 Redux - 知乎專欄Javascript編碼規(guī)范 - Clearlove - SegmentFau...
摘要:注意箭頭函數(shù)有幾個(gè)使用注意點(diǎn)不可以使用對(duì)象,該對(duì)象在函數(shù)體內(nèi)不存在。不可以當(dāng)作構(gòu)造函數(shù),也就是說,不可以使用命令,否則會(huì)拋出一個(gè)錯(cuò)誤。不可以使用命令,因此箭頭函數(shù)不能用作函數(shù)。 前言 在JavaScript的世界中函數(shù)被譽(yù)為一等公民,每當(dāng)我們需要在JS定義一個(gè)新的函數(shù),我們都會(huì)毫不猶豫的function() {},也許我們可以開始換一種方式來定義一個(gè)函數(shù),也就是本文的主角箭頭函數(shù),一個(gè)...
摘要:注意問題,不在是運(yùn)行時(shí)所在的對(duì)象箭頭函數(shù)里面沒有用箭頭函數(shù)不能當(dāng)構(gòu)造函數(shù)下一篇入門到進(jìn)階二循環(huán)數(shù)組對(duì)象參考視頻資料經(jīng)典入門到進(jìn)階 一、簡(jiǎn)介 ES6 -> ECMA 標(biāo)準(zhǔn) ES6 -> 2015年6月 ES6.0 每年6月份,發(fā)布一個(gè)版本 ES6環(huán)境: webpack3.x Traceur 二、let、const 2.1 關(guān)于定義(聲明)變量 var a=12; ...
閱讀 1280·2021-11-11 16:55
閱讀 1545·2021-10-08 10:16
閱讀 1203·2021-09-26 10:20
閱讀 3578·2021-09-01 10:47
閱讀 2461·2019-08-30 15:52
閱讀 2690·2019-08-30 13:18
閱讀 3202·2019-08-30 13:15
閱讀 1126·2019-08-30 10:55