zoukankan      html  css  js  c++  java
  • 柯里化/偏函数/Curring用法

    把接受多个参数的函数变成一个单一参数的函数,并且返回接受余下的参数而有返回结果的新函数的技术

    下面我们以实例说明:

    var toString = {}.toString;
    
    var isString = function(obj) {
        return toString.call(obj) === '[object String]';
    };
    
    var isFunction = function(obj) {
        return toString.call(obj) === '[object Function]';
    };
    ...
    

    在JavaScript中进行类型判断时,我们通常会进行类似上述代码的方法定义。这段代码虽然不复杂,但是需要重复去定义一些相似的函数,如果有更多的isXXX(),就会出现更多的冗余代码。我们可以做一些改进

    var isType = function(type, obj) {
        return toString.call(obj) === '[object ' + type + ']';
    };
    

    提取不确定因素,用同一个函数代替。但是这样的type是可以枚举出来的值,会造成不必要的犯错和冗余,且语义不清晰。如果我们引入一个新函数,可以如工厂一样批量创建一些类似的函数。

    var isType = function(type) {
        return function(obj) {
            return toString.call(obj) === '[object ' + type + ']';
        };
    };
    
    var isString = isType('String');
    var isFunction = isType('Function');
    

    我们通过isType()函数预先指定type的值,然后返回一个新函数。这样创建类型判断函数就简单多了

    参考:深入浅出Node.js

  • 相关阅读:
    C#如何连接wifi和指定IP
    3.4 小结
    3.3.4.5 起始与清除
    3.3.4.4 打印行
    3.3.4.3 设置字段分隔字符
    3.3.4.2 字段
    3.3.4.1 模式与操作
    3.3.4 使用 awk 重新编排字段
    3.3.3 使用 join 连接字段
    3.3.2 使用 cut 选定字段
  • 原文地址:https://www.cnblogs.com/mackxu/p/curring.html
Copyright © 2011-2022 走看看