成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于add方法的實(shí)現(xiàn)——undersore,lodash && ramda

happen / 3332人閱讀

摘要:方法簡(jiǎn)答粗暴,我喜歡高階函數(shù)應(yīng)用,典型純函數(shù)式華麗的柯麗化應(yīng)用,往死里面套,然后使用起來(lái),缺沒那么歇菜歇菜未來(lái)如果非要實(shí)現(xiàn)咋辦

Add 方法 undersore
var add =function(a,b){
    return a+b;
}

簡(jiǎn)答粗暴,我喜歡

lodash
function createMathOperation(fn){
    return function(...arg){
           return fn(arg)
   }
}

var add=createMathOperation((a,b)=>a+b)

高階函數(shù)應(yīng)用,典型純函數(shù)式

ramda
funtion _cuurry1(fn){
    return function f1(a) {
    if (arguments.length === 0 || _isPlaceholder(a)) {
      return f1;
    } else {
      return fn.apply(this, arguments);
    }
  }
}
function _curry2(fn) {
  return function f2(a, b) {
    switch (arguments.length) {
      case 0:
        return f2;
      case 1:
        return _isPlaceholder(a) ? f2
             : _curry1(function(_b) { return fn(a, _b); });
      default:
        return _isPlaceholder(a) && _isPlaceholder(b) ? f2
             : _isPlaceholder(a) ? _curry1(function(_a) { return fn(_a, b); })
             : _isPlaceholder(b) ? _curry1(function(_b) { return fn(a, _b); })
             : fn(a, b);
    }
  };
};
var add=_curry2((a,b)=>a+b)

華麗的柯麗化應(yīng)用,往死里面套,然后使用起來(lái),缺沒那么Hai

 add(1,2) ==> 3
 add(1)(2) ==> 3
 add(1,2)(3) ==> 歇菜
 add(1)(2)(3) ==> 歇菜
未來(lái)?

如果非要實(shí)現(xiàn) add(1,2)(3)(4,5) 咋辦?

function curray(fn){
    return function(){
        var args=[].slice.call(arguments);
        var func=function(){
            [].push.apply(args,[].slice.call(arguments))
            return func;
        }
        func.toString=function(){
            return args.reduce(fn)
        }
        return func
    }
}
var add=curray(function(a,b){return a+b;})
var a=add(1,2,3)(4)(5);

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83635.html

相關(guān)文章

  • 翻譯連載 | 附錄 C:函數(shù)式編程函數(shù)庫(kù)-《JavaScript輕量級(jí)函數(shù)式編程》 |《你不知道J

    摘要:為了盡可能提升互通性,已經(jīng)成為函數(shù)式編程庫(kù)遵循的實(shí)際標(biāo)準(zhǔn)。與輕量級(jí)函數(shù)式編程的概念相反,它以火力全開的姿態(tài)進(jìn)軍的函數(shù)式編程世界。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個(gè)流淌著滬江血液的純粹工程:認(rèn)真,是 HTML 最堅(jiān)實(shí)的梁柱;分享,是 CSS 里最閃耀的一瞥;總結(jié),...

    Miracle 評(píng)論0 收藏0
  • 快速 TypeScript 化 lodash throttle & debounce

    摘要:背景需要包寫起來(lái)爽,然而如果遇到?jīng)]有現(xiàn)成的化的工具函數(shù),就需要自己想辦法弄出一份類型聲明文件了。最為重要的是,這種遷移方面我們可以隨意自定義化中所需要的工具函數(shù),遷移粒度都可以由自己控制。 1、背景 1.1、需要 TS 包 TypeScript 寫起來(lái)爽,然而如果遇到?jīng)]有現(xiàn)成的 TS 化的工具函數(shù),就需要自己想辦法弄出一份類型聲明文件了。 前兩天要寫的小工具庫(kù)(Typescript 語(yǔ)...

    lewinlee 評(píng)論0 收藏0
  • 如何開發(fā)JS-SDK

    一、前言最近在開發(fā)一款一鍵登錄的號(hào)碼認(rèn)證js-sdk,所以就做了一些調(diào)研,記錄下開發(fā)過程。前端SDK是什么?前端SDK是為了幫助前端實(shí)現(xiàn)特定需求,而向開發(fā)者暴露的一些JS-API的集合,規(guī)范的SDK包括若干API實(shí)現(xiàn)、說(shuō)明文檔等前端SDK其實(shí)很常見了,比如:UI組件庫(kù):通過封裝一系列組件,通過配置幫助開發(fā)者調(diào)用AntdElementUIJS類庫(kù):通過實(shí)現(xiàn)一類常用的方法,便于開發(fā)處理數(shù)據(jù),也不用再考...

    社區(qū)管理員 評(píng)論0 收藏0
  • Lodash 源碼分析(三)Array

    摘要:前言這是源碼分析系列文章的第三篇,前面兩篇文章源碼分析一源碼分析二分別分析了中的一些重要函數(shù),也給出了簡(jiǎn)化的實(shí)現(xiàn),為理解其內(nèi)部機(jī)理和執(zhí)行方式提供了便利。官方也對(duì)其進(jìn)行了說(shuō)明。 前言 這是Lodash源碼分析系列文章的第三篇,前面兩篇文章(Lodash 源碼分析(一)Function Methods、Lodash 源碼分析(二)Function Methods)分別分析了Lodash F...

    ZoomQuiet 評(píng)論0 收藏0
  • Python單元測(cè)試兩種方法解答

      小編這這篇文章的主要目的,主要是給大家進(jìn)行一個(gè)詳解,解釋一下關(guān)于Python中,單元格測(cè)試的一些具體方法,那么,測(cè)試的方法都有什么呢?下面小編就給大家詳細(xì)的做出一個(gè)解答。  一、前言  python的兩個(gè)單元測(cè)試包分別是doctest和unittest,這兩個(gè)包的使用起來(lái)各有長(zhǎng)處,適用于不同的場(chǎng)景  doctest:直接寫在方法體中,利用了python動(dòng)態(tài)語(yǔ)言的特性,書寫方式簡(jiǎn)單明了,前提是項(xiàng)...

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

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

0條評(píng)論

閱讀需要支付1元查看
<