摘要:箭頭函數(shù)的寫法箭頭函數(shù)相當(dāng)于匿名函數(shù),它的寫法是它相當(dāng)于可以看到,只有一條語句的箭頭函數(shù)省略了括號(hào)與。
箭頭函數(shù)的寫法:
箭頭函數(shù)相當(dāng)于匿名函數(shù),它的寫法是:
x => x*x
它相當(dāng)于
fucntion (x){ return x*x; }
可以看到,只有一條語句的箭頭函數(shù)省略了括號(hào)與return。如果含有多條表達(dá)式,那么就不能省略{}與return:
x => { if(x>0){ return x*x; }else{ return -x*x; } }
如果函數(shù)多個(gè)參數(shù),那么小括號(hào)()也不能省略:
// 兩個(gè)參數(shù): (x, y) => x * x + y * y // 無參數(shù): () => 3.14 // 可變參數(shù): (x, y, ...rest) => { var i, sum = x + y; for (i=0; i如果要返回一個(gè)表達(dá)式的話,這樣寫會(huì)報(bào)錯(cuò):
x => {foo.x}因?yàn)楹秃瘮?shù)體的{...}有沖突,所以要改為:
x => ({foo.x})this指向的修復(fù)不使用箭頭函數(shù)的時(shí)候,在對(duì)象的方法中使用this需要使用hack寫法:
var obj = { birth: 1990, getAge: function () { var _this = this; var fn = function () { return new Date().getFullYear() - _this.birth; // this指向window或undefined }; return fn(); } };現(xiàn)在,箭頭函數(shù)完全修復(fù)了this的指向,this總是指向詞法作用域,也就是外層調(diào)用者obj:
var obj = { birth: 1990, getAge: function () { var b = this.birth; // 1990 var fn = () => new Date().getFullYear() - this.birth; // this指向obj對(duì)象 return fn(); } }; obj.getAge(); // 25
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/94752.html
摘要:特性介紹箭頭函數(shù)是新增的特性之一,它為這門語言提供了一種全新的書寫函數(shù)的語法。用生成的函數(shù)會(huì)定義一個(gè)自己的,而箭頭函數(shù)沒有自己的,而是會(huì)和上一層的作用域共享。 本文同步自我得博客:http://www.joeray61.com JS中的箭頭 箭頭在JS里并不算是個(gè)新鮮的玩意兒,一直以來,JS都支持-->這樣的箭頭。 很早的時(shí)候有些瀏覽器還不支持JS,當(dāng)時(shí)的人們?yōu)榱思嫒葸@些瀏覽器,需要這...
摘要:回顧我們先來回顧下箭頭函數(shù)的基本語法。主要區(qū)別包括沒有箭頭函數(shù)沒有,所以需要通過查找作用域鏈來確定的值。箭頭函數(shù)并沒有方法,不能被用作構(gòu)造函數(shù),如果通過的方式調(diào)用,會(huì)報(bào)錯(cuò)。 回顧 我們先來回顧下箭頭函數(shù)的基本語法。 ES6 增加了箭頭函數(shù): let func = value => value; 相當(dāng)于: let func = function (value) { return ...
摘要:使用或調(diào)用由于已經(jīng)在詞法層面完成了綁定,通過或方法調(diào)用一個(gè)函數(shù)時(shí),只是傳入了參數(shù)而已,對(duì)并沒有什么影響箭頭函數(shù)不會(huì)在其內(nèi)部暴露出參數(shù)等等,都不會(huì)指向箭頭函數(shù)的,而是指向了箭頭函數(shù)所在作用域的一個(gè)名為的值如果有的話,否則,就是。 ES6之箭頭函數(shù) 標(biāo)簽(空格分隔): 未分類 返回值 單行函數(shù)體默認(rèn)返回改行計(jì)算結(jié)果, 多行需要指定返回值 let c = (a,b)=>a+b; conso...
摘要:使用或調(diào)用由于已經(jīng)在詞法層面完成了綁定,通過或方法調(diào)用一個(gè)函數(shù)時(shí),只是傳入了參數(shù)而已,對(duì)并沒有什么影響箭頭函數(shù)不會(huì)在其內(nèi)部暴露出參數(shù)等等,都不會(huì)指向箭頭函數(shù)的,而是指向了箭頭函數(shù)所在作用域的一個(gè)名為的值如果有的話,否則,就是。 ES6之箭頭函數(shù) 標(biāo)簽(空格分隔): 未分類 返回值 單行函數(shù)體默認(rèn)返回改行計(jì)算結(jié)果, 多行需要指定返回值 let c = (a,b)=>a+b; conso...
摘要:使用或調(diào)用由于已經(jīng)在詞法層面完成了綁定,通過或方法調(diào)用一個(gè)函數(shù)時(shí),只是傳入了參數(shù)而已,對(duì)并沒有什么影響箭頭函數(shù)不會(huì)在其內(nèi)部暴露出參數(shù)等等,都不會(huì)指向箭頭函數(shù)的,而是指向了箭頭函數(shù)所在作用域的一個(gè)名為的值如果有的話,否則,就是。 ES6之箭頭函數(shù) 標(biāo)簽(空格分隔): 未分類 返回值 單行函數(shù)體默認(rèn)返回改行計(jì)算結(jié)果, 多行需要指定返回值 let c = (a,b)=>a+b; conso...
閱讀 2836·2021-11-19 09:40
閱讀 3695·2021-11-15 18:10
閱讀 3281·2021-11-11 16:55
閱讀 1231·2021-09-28 09:36
閱讀 1647·2021-09-22 15:52
閱讀 3367·2019-08-30 14:06
閱讀 1160·2019-08-29 13:29
閱讀 2307·2019-08-26 17:04