亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

初探es6的箭頭函數

2024-04-27 15:05:25
字體:
來源:轉載
供稿:網友

語法

我們先來看看箭頭函數的語法:

([param] [, param]) => { statements}param => exPRession123456123456

param 是參數,根據參數個數不同,分這幾種情況: () => { … } // 零個參數用 () 表示; x => { … } // 一個參數可以省略 (); (x, y) => { … } // 多參數不能省略 ();


示例

我們再來看看一些示例,看看在ES5中的函數怎么通過ES6中的箭頭函數來替代吧:

// ES5var selected = allJobs.filter(function (job) { return job.isSelected();});// ES6var selected = allJobs.filter(job => job.isSelected());1234567812345678

當然,也可以定義多個參數:

// ES5var total = values.reduce(function (a, b) {  return a + b;}, 0);// ES6var total = values.reduce((a, b) => a + b, 0);1234567812345678

當然=>后面也不一定非得接return 之后的語句,看下面:

// ES5$("#confetti-btn").click(function (event) {  playTrumpet();  fireConfettiCannon();});// ES6$("#confetti-btn").click(event => {  playTrumpet();  fireConfettiCannon();});12345678910111234567891011

但是需要注意的是,多行語句需要用{}括起來,單行表達式不需要{},并且會作為函數返回值。

x => { return x * x }; // 函數返回 x * xx => x * x; // 同上一行x => return x * x; // SyntaxError 報錯,不能省略 {}x => { x * x }; // 合法,沒有定義返回值,返回 undefined1234512345

和普通函數一樣,箭頭函數也可以使用剩余參數和默認參數。

var func1 = (x = 1, y = 2) => x + y;func1(); // 得到 3var func2 = (x, ...args) => { console.log(args) };func2(1,2,3); // 輸出 [2, 3]123456123456

特性

介紹完了箭頭表達式的語法和示例,我們就需要思考一下了。如果箭頭表達式僅僅就是簡化了函數的命名,我們為什么要改變原來的習慣而去使用它呢?所以我們需要了解一下箭頭函數的特性。

箭頭函數內部沒有constructor方法,也沒有prototype,所以不支持new操作。但是它對this的處理與一般的普通函數不一樣。箭頭函數的 this 始終指向函數定義時的 this,而非執行時。我們通過一個例子來理解:

var o = {    x : 1,    func : function() { console.log(this.x) },    test : function() {        setTimeout(function() {            this.func();        }, 100);    }};o.test(); // TypeError : this.func is not a function123456789101112123456789101112

上面的代碼會出現錯誤,因為this的指向從o變為了全局(函數調用中的this都是指向全局的)。如果大家對javaScript中的this不是很熟悉的話,可以看看我寫過的一篇文章,深入理解Javascript之this。好了,回歸正題,我們需要修改上面的代碼如下:

var o = {    x : 1,    func : function() { console.log(this.x) },    test : function() {        var _this = this;        setTimeout(function() {            _this.func();         }, 100);    }};o.test();1234567891011121312345678910111213

通過使用外部事先保存的this就行了。這里就可以利用到箭頭函數了,我們剛才說過,箭頭函數的 this 始終指向函數定義時的 this,而非執行時。所以我們將上面的代碼修改如下:

var o = {    x : 1,    func : function() { console.log(this.x) },    test : function() {        setTimeout(() => { this.func() }, 100);    }};o.test();1234567891012345678910

這回this就指向o了。

我們還需要注意一點的就是這個this是不會改變指向對象的,我們知道call和apply可以改變this的指向,但是在箭頭函數中是無效的。

var x = 1,    o = {        x : 10,        test : () => this.x    };o.test(); // 1o.test.call(o); // 依然是1本文轉自:http://blog.csdn.net/mevicky/article/details/49942559 一個很不錯的博客!謝謝~
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品成人乱色一区二区| 国产成人一区二区在线| 欧美精品激情在线观看| 亚洲第一精品夜夜躁人人爽| 在线电影中文日韩| 黑人精品xxx一区| 日本久久久久久久久| 亚洲区一区二区| 8x海外华人永久免费日韩内陆视频| 精品成人在线视频| 国产精品夜色7777狼人| 亚洲丁香婷深爱综合| 亚洲毛片在线观看.| 九九视频直播综合网| 国产女人精品视频| 秋霞av国产精品一区| 精品视频在线播放色网色视频| 日韩在线精品视频| 久久久久久久久91| 91在线网站视频| 亚洲精品一区二区三区婷婷月| 96sao精品视频在线观看| 日韩欧美有码在线| 国产香蕉精品视频一区二区三区| 国产一区二区免费| 久久亚洲欧美日韩精品专区| 亚洲成人在线网| 欧美高清videos高潮hd| 欧美三级免费观看| 国产精品永久免费在线| 中文字幕日韩专区| 国产精品美腿一区在线看| 日韩av电影在线播放| 亚洲黄色成人网| 狠狠躁天天躁日日躁欧美| 久久艳片www.17c.com| 国产精品成熟老女人| 91精品国产91久久久久久久久| 在线日韩av观看| 日韩亚洲欧美成人| 欧美野外猛男的大粗鳮| 91探花福利精品国产自产在线| 米奇精品一区二区三区在线观看| 国产精品www网站| 国产激情久久久| 精品自拍视频在线观看| 91国内免费在线视频| 亚洲欧美国产制服动漫| 亚洲最大福利视频网| 日韩动漫免费观看电视剧高清| 日韩欧美在线网址| 欧美在线一级视频| 久久久久久久久久久亚洲| 欧美在线影院在线视频| 日韩av有码在线| 亚洲自拍偷拍一区| 久久久久久久一区二区三区| 日韩av在线免费观看一区| 狠狠操狠狠色综合网| 精品久久久一区二区| 91免费高清视频| xx视频.9999.com| 这里精品视频免费| 国产一区私人高清影院| 亚洲人成自拍网站| 日韩美女在线观看| 成人福利在线视频| 最近更新的2019中文字幕| 国产精品亚洲自拍| 亚洲第一区第二区| 国产精品一二三在线| 亚洲成在人线av| 欧美日韩国产麻豆| 中文字幕亚洲欧美日韩高清| 亚洲国产成人久久综合一区| 91在线视频一区| 中文字幕亚洲无线码a| 国产日韩在线播放| 久久99久久99精品中文字幕| 97在线视频精品| 国产精品 欧美在线| 久久精品国产成人| 日韩精品中文字幕在线| 国内精品视频一区| 日韩电影中文字幕一区| 色综合色综合久久综合频道88| 欧美一区二区色| 久久影视电视剧凤归四时歌| 欧美国产日韩中文字幕在线| 亚洲香蕉成视频在线观看| 在线播放国产一区中文字幕剧情欧美| 国内偷自视频区视频综合| 国产视频久久久久久久| 日韩激情av在线免费观看| 色偷偷88888欧美精品久久久| 日韩精品视频在线| 精品国产一区久久久| 亚洲va久久久噜噜噜久久天堂| 久久久欧美一区二区| 久久久久久久久网站| 久久精品久久久久| 岛国视频午夜一区免费在线观看| 亚洲人成在线观看网站高清| 亚洲图片欧洲图片av| 精品少妇一区二区30p| 91精品视频在线看| 91精品综合久久久久久五月天| 不卡伊人av在线播放| 日韩精品免费在线播放| 亚洲精品之草原avav久久| 国产精品av电影| 91精品综合久久久久久五月天| 国产91精品久久久久久| 日韩网站在线观看| 日本不卡免费高清视频| 精品中文字幕在线2019| 久久精品亚洲热| 日韩精品在线免费观看| 亚洲毛茸茸少妇高潮呻吟| 成人羞羞国产免费| 日韩精品视频在线观看网址| 精品久久久久国产| 狠狠爱在线视频一区| 久久精品国产视频| 最近中文字幕日韩精品| 国产精品久久久久久中文字| 欧美重口另类videos人妖| 久久久久久久久久久免费精品| 成人免费看黄网站| 国产精品视频导航| 中文字幕久热精品在线视频| 国产亚洲在线播放| 亚洲伦理中文字幕| 亚洲国内高清视频| 国产成+人+综合+亚洲欧美丁香花| 亚洲最大av网站| 日韩高清不卡av| 亚洲女人天堂网| 欧美丝袜一区二区三区| 狠狠久久亚洲欧美专区| 亚洲最大中文字幕| 91国语精品自产拍在线观看性色| 国产欧美精品在线播放| 欧美视频国产精品| 久久精品99国产精品酒店日本| 欧美国产日韩在线| 久久久久久久久久婷婷| 亚洲一区二区久久久久久| 亚洲一二在线观看| 日韩亚洲国产中文字幕| 精品中文字幕在线2019| 日韩av电影中文字幕| 在线视频欧美性高潮| 亚洲精品国产精品国产自| 国产精品亚洲一区二区三区| 国产精品丝袜视频| 国产精品免费久久久| 欧美激情国产精品| 这里只有视频精品| 欧美夫妻性生活xx| 成人综合网网址| 国内精品中文字幕| 午夜精品久久久久久99热软件| 国a精品视频大全|