国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談javascript函數式編程

2019-11-20 11:36:35
字體:
來源:轉載
供稿:網友

函數式編程,屬于編程范式的一種

1 函數是第一公民,可以返回值,也可以作為其他函數的參數

//console是一個函數function con(v){ console.log(v)}// execute 也是一個函數function execute(fn){ fn(1)}//將con函數作為參數傳進execute函數execute(con) // 1

2 接近自然語言的寫法

  曉池吃完飯然后就去洗澡 可以表現為eat().bathe()

// 吃飯函數function eat(eat){ this.e = eat; return this;}// 洗澡函數function bathe(bathe){ this.b = bathe; return this;}var person = eat("曉池在吃飯").bathe("曉池去洗澡了");console.log(person.e) // 曉池在吃飯console.log(person.b) // 曉池去洗澡了

 3 函數式編程的特性

  匿名函數,即沒有名字的函數,在函數式編程中很常見,有時候我們需要通過它(不復用的函數)來完成部分功能,下面我們通過定義一個each函數來了解一下:

// 自定義each函數function each(arr,func){ var length = arr.length; for(var i = 0 ;i <length; i++){  func(i,arr[i]) }}// 執行each函數,傳進一個匿名函數作為該函數的參數each([1,2,3],function(i,v){ console.log('key:' + i + ',value:' +v);});//輸出內容//key:0,value:1//key:1,value:2//key:2,value:3

 柯里化:柯里化是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,并且返回接受余下的參數而且返回結果的新函數的技術

//定義add函數,并返回一個函數function add(num){ return function(x){   return num + x; }}add1 = add(1)console.log(add1(3)) // 4

高階函數:有函數作為參數或函數內部返回一個函數,都可稱該函數為高階函數 ,以上的each函數即算是高階函數的一種。

結束語

實際的應用中,不會囿于函數式或者面向對象,通常是兩者混合使用,事實上,很多主流的面向對象語言都在不斷的完善自己,比如加入一些函數式編程語言的特征等,JavaScript 中,這兩者得到了良好的結合,代碼不但可以非常簡單,優美,而且更易于調試。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洪泽县| 德令哈市| 阿鲁科尔沁旗| 调兵山市| 汝阳县| 贵州省| 桃园市| 西藏| 高清| 天津市| 苏尼特右旗| 巢湖市| 河南省| 五原县| 澄城县| 宁武县| 新兴县| 砚山县| 洪雅县| 肥东县| 太湖县| 海城市| 田林县| 鸡泽县| 城固县| 胶州市| 静海县| 汝州市| 贵州省| 防城港市| 三门峡市| 策勒县| 科尔| 苏尼特右旗| 甘谷县| 山丹县| 昆山市| 鲁甸县| 文山县| 鄂温| 琼结县|