偏函数

作者: Gaolex | 来源:发表于2016-11-06 12:18 被阅读132次

偏函数用法是指创建一个调用另外一个部分—参数或变量已经预置的函数—的函数的用法。这句话相对较为拗口,下面我们以实例来说明:

//代码1
var toString = Object.prototype.toString;
var isString = function (obj){
return toString.call(obj) == ’[object String]
};
var isFunction == function(obj){
  return toString.call(obj) == '[object Function]'
};

代码1解释:
可以通过toString()来获取每个对象的类型。为了每个对象都能通过 Object.prototype.toString()来检测,需要以 Function.prototype.call()或者 Function.prototype.apply()的形式来调用,把需要检测的对象作为第一个参数传入。eg:

//代码2
var toString = Object.prototype.toString;

toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]

//Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]

在JavaScript中进行类型判断时,我们通常会进行类似上述代码的方法定义。这段代码固然不复杂,只有两个数的定义,但是里面存在的问题是我们需要重复去定义一些相似的函数,如果有更多的isXXX(),就会出现更多冗余代码。为了解决重复定义的问题,我们引入一个新函数,这个新函数可以如工厂一样批量创建一些类似的函数。在下面的代码中,我们通过isType()函数预先指定type的值,然后返回一个新的函数:

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

var isString = isType('String');
var isFunction = isType('Function');

可以看出,引入isType()函数后,创建isString(), isFunction()函数就变得简单多了。这种通过指定部分参数来产生一个新的定制函数的形式就是偏函数。

相关文章

  • 笨笨的学pythonDay06

    接着昨天未学完的函数,还有个偏函数和装饰器,先说一下偏函数,装饰器没有看明白 1.偏函数 偏函数可以通过将函数参数...

  • 偏函数

    偏函数作用 Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial func...

  • 偏函数

    当一个函数有很多参数时,调用者就需要提供多个参数。如果减少参数个数,就可以简化调用者的负担。 比如,int()函数...

  • 偏函数

  • 偏函数

    偏函数用法是指创建一个调用另外一个部分—参数或变量已经预置的函数—的函数的用法。这句话相对较为拗口,下面我们以实例...

  • 偏函数

    偏函数: functools模块提供很多有用的功能,其中就有偏函数 tip:int()函数可提供额外的base参数...

  • 偏函数

  • 偏函数

    偏函数

  • 偏函数

    偏函数 什么是偏函数? 简单的理解偏函数,它是对原始函数的二次封装,是将现有函数的部分参数预先绑定为指定值,从而得...

  • 偏函数

    把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数

网友评论

      本文标题:偏函数

      本文链接:https://www.haomeiwen.com/subject/wftnuttx.html