RN學(xué)習(xí)筆記之箭頭函數(shù)

前言

有一定Android基礎(chǔ)初學(xué)RN,但是有沒有過多的接觸lambda表達(dá)式畦徘,在學(xué)寫的過程中會看到很多使用=>的代碼担扑,不清楚=>的意義以及用法對于學(xué)習(xí)RN有一定的困惑,今天一邊學(xué)習(xí)一邊記錄一下=>的意義和用法税肪。

如果想更深入了解,可以自行搜索箭頭函數(shù)和lambda表達(dá)式

ES6允許使用“箭頭”(=>)定義函數(shù)榜田。而JavaScript中益兄,函數(shù)其實也是對象,函數(shù)名是函數(shù)的引用串慰,函數(shù)本身就是一個變量偏塞,而且JavaScript函數(shù)的聲明是沒有返回值類型這一個說法。

箭頭函數(shù)實際上是定義了一個臨時的函數(shù)邦鲫,箭頭函數(shù)的箭頭=>之前是一個空括號、單個的參數(shù)名神汹、或用括號括起的多個參數(shù)名庆捺,而箭頭之后可以是一個表達(dá)式(作為函數(shù)的返回值),或者是用花括號括起的函數(shù)體(需要自行通過return來返回值屁魏,否則返回的是undefined)滔以。

關(guān)于箭頭函數(shù)的定義,主要有以下幾點:

定義變量

var str = () => '調(diào)用我之后直接返回該字符串';

直接定義一個函數(shù)-不帶參數(shù)

var testF= ()=>{

console.log(‘123456789’)

}

上面定位一個函數(shù)testF氓拼,其作用是打印‘12345789’你画,在其他地方調(diào)用時直接調(diào)用testF即可,如下:


ps:如果在函數(shù)在class內(nèi)定義桃漾,如

_onPressButton () ?{

console.log("You 點擊了 the button!");

}

在調(diào)用的時候需要使用使用this._onPressButton坏匪,如下:

onLongPress={this._onPressButton}

同時如果使用

onLongPress={this._onPressButton()}

會在程序一加載的時候執(zhí)行了_onPressButton方法(此處還沒有徹底清楚,后續(xù)繼續(xù)研究)

帶參數(shù)的函數(shù)


var testF2= i=>{

console.log(i)

}

var testF2= (i)=>{

console.log(i)

}

var addString= (num1,num2)=>{

return num1+num2;

}

其中是否使用return取決于當(dāng)前方法是否對外提供執(zhí)行后的結(jié)果還是純執(zhí)行一下代碼邏輯即可撬统。

定義函數(shù)返回對象

上面使用到{}适滓,大括號被解釋為代碼塊,有點像java匿名內(nèi)部類的代碼塊一樣恋追,如果需要定義返回對象凭迹,需要使用()進(jìn)行包括罚屋,如下:

var getUserInfo1= ()=>({name:'zhangsan',age:12,class:6})

var getUserInfo2= (id)=>({name:'zhangsan',age:12,class:6,id:id})

var getUserInfo3= (id)=>{

return{name:'zhangsan',age:12,class:6,id:id}

}

以上分別是帶參數(shù)和不帶參數(shù)的兩種方式(getUserInfo2和getUserInfo2效果相同)。

寫上述的定義方法嗅绸,其實是為了解釋像java 使用匿名內(nèi)部類那樣使用箭頭函數(shù)脾猛,使用方法其實就是將第一個等號及其前面的去掉,直接寫在需要調(diào)用的地方即可鱼鸠,具體如下:


匿名使用

注意事項

1尖滚、箭頭函數(shù)沒有他自己的this值,它里面使用過的this繼承自外圍作用域瞧柔。

2漆弄、因為第一點,所以箭頭函數(shù)不能作為構(gòu)造函數(shù)

3造锅、不能使用方法中自帶的arguments對象(arguments實際上是當(dāng)前函數(shù)的一個內(nèi)置屬性撼唾,類似array,會將方法中的參數(shù)存起來)

關(guān)于箭頭函數(shù)的其他諸如函數(shù)綁定(ES7語法)等哥蔚,目前不是很了解倒谷,暫不過多敘述。

關(guān)于this的作用糙箍,也了解不甚多渤愁,只知道

長期以來,JavaScript語言的this對象一直是一個令人頭痛的問題深夯,在對象方法中使用this抖格,必須非常小心。

ps:如果箭頭函數(shù)中套用箭頭函數(shù)咕晋,會是什么樣呢雹拄?


結(jié)果是:I/ReactNativeJS(26113): [Function]

關(guān)于箭頭函數(shù)覺得比較好的解說,可以參見

妥善使用箭頭函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掌呜,一起剝皮案震驚了整個濱河市滓玖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌质蕉,老刑警劉巖势篡,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異模暗,居然都是意外死亡禁悠,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門汰蓉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绷蹲,“玉大人,你說我怎么就攤上這事∽8郑” “怎么了比规?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拦英。 經(jīng)常有香客問我蜒什,道長,這世上最難降的妖魔是什么疤估? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任灾常,我火速辦了婚禮,結(jié)果婚禮上铃拇,老公的妹妹穿的比我還像新娘钞瀑。我一直安慰自己,他們只是感情好慷荔,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布雕什。 她就那樣靜靜地躺著,像睡著了一般显晶。 火紅的嫁衣襯著肌膚如雪贷岸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天磷雇,我揣著相機與錄音偿警,去河邊找鬼。 笑死唯笙,一個胖子當(dāng)著我的面吹牛螟蒸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睁本,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尿庐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呢堰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凡泣,失蹤者是張志新(化名)和其女友劉穎枉疼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鞋拟,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡骂维,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贺纲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片航闺。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出潦刃,到底是詐尸還是另有隱情侮措,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布乖杠,位于F島的核電站分扎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胧洒。R本人自食惡果不足惜畏吓,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卫漫。 院中可真熱鬧菲饼,春花似錦、人聲如沸列赎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粥谬。三九已至肛根,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間漏策,已是汗流浹背派哲。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掺喻,地道東北人芭届。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像感耙,于是被迫代替她去往敵國和親褂乍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品即硼,去做同樣的事情逃片,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,758評論 2 17
  • 單例模式 適用場景:可能會在場景中使用到對象只酥,但只有一個實例褥实,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式裂允,...
    Obeing閱讀 2,067評論 1 10
  • 1.函數(shù)參數(shù)的默認(rèn)值 (1).基本用法 在ES6之前损离,不能直接為函數(shù)的參數(shù)指定默認(rèn)值,只能采用變通的方法绝编。
    趙然228閱讀 690評論 0 0
  • 慕課網(wǎng)@JoJozhai 老師 TypeScript入門課程分享 TypeScript入門 ES5,ES6,JS,...
    shangpudxd閱讀 10,432評論 0 22
  • js簡介 Js是一種基于事件和對象驅(qū)動的解釋性僻澎、松散性的語言貌踏。 一切皆對象 javascript 布蘭登艾奇 ...
    塔庫納瑪哈哈閱讀 1,206評論 0 2