国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

happen / 3330人閱讀

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

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

簡答粗暴,我喜歡

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)用,往死里面套,然后使用起來,缺沒那么Hai

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

如果非要實(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://m.specialneedsforspecialkids.com/yun/83635.html

相關(guān)文章

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

    摘要:為了盡可能提升互通性,已經(jīng)成為函數(shù)式編程庫遵循的實(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

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

    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)、說明文檔等前端SDK其實(shí)很常見了,比如:UI組件庫:通過封裝一系列組件,通過配置幫助開發(fā)者調(diào)用AntdElementUIJS類庫:通過實(shí)現(xiàn)一類常用的方法,便于開發(fā)處理數(shù)據(jù),也不用再考...

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

    摘要:前言這是源碼分析系列文章的第三篇,前面兩篇文章源碼分析一源碼分析二分別分析了中的一些重要函數(shù),也給出了簡化的實(shí)現(xiàn),為理解其內(nèi)部機(jī)理和執(zhí)行方式提供了便利。官方也對(duì)其進(jìn)行了說明。 前言 這是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è)包的使用起來各有長處,適用于不同的場(chǎng)景  doctest:直接寫在方法體中,利用了python動(dòng)態(tài)語言的特性,書寫方式簡單明了,前提是項(xiàng)...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<