国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ES2015入門系列3-箭頭函數(shù)

syoya / 1351人閱讀

摘要:箭頭函數(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

相關(guān)文章

  • [ ES6 ] 快速掌握常用 ES6 (一)

    摘要:常量變量先說說常量和變量的概念吧,常量是說那種進(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)于 ...

    ispring 評(píng)論0 收藏0
  • 2017-06-29 前端日?qǐng)?bào)

    摘要:前端日?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...

    gaosboy 評(píng)論0 收藏0
  • babel入門

    摘要:為了方便,團(tuán)隊(duì)將一些集合在一起,并稱之為。先看一下直觀體驗(yàn)源代碼配置編譯后的代碼通過對(duì)比可以看出,第二種方案直接從引入,避免自己定義,從而減少代碼的體積。 Babel Babel 是一個(gè) JavaScript 編譯器,它可以將ES6+語法編譯為瀏覽器支持的ES5語法。要學(xué)好babel必須先理解相關(guān)的概念,但是你剛起步就去扣這些細(xì)節(jié)的話,很可能因?yàn)閎abel一些復(fù)雜而模糊的概念打擊你的信...

    pkwenda 評(píng)論0 收藏0
  • 探索ES2015箭頭函數(shù)(Arrow Functions)

    摘要:注意箭頭函數(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è)...

    pkwenda 評(píng)論0 收藏0
  • ES6入門到進(jìn)階(一):let、解構(gòu)賦值、字符串模板、函數(shù)

    摘要:注意問題,不在是運(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; ...

    WalkerXu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

syoya

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<