偏函数用法是指建立一个调用另一个部分——参数或变量已经预置的函数——的函数的用法。函数
let toString = Object.prototype.toString;
let isString = function (obj) {
return toString.call(obj) == '[object String]';
};
let isFunction = function (obj) {
return toString.call(obj) == '[object Function]';
};
复制代码
在JavaScript中进行类型判断时,咱们一般会进行相似上述代码的方法定义。这段代码当然不复杂,只有两个函数的定义,可是里面存在的问题是咱们须要重复去定义一些类似的函数,若是有更多的 isXXX()
,就会出现更多的冗余代码。ui
为了解决重复定义的问题,咱们引入一个新函数,这个新函数能够如工厂同样批量建立一些相似的函数。在下面的代码中,咱们经过 isType()
函数预先指定 type
的值,而后返回一个新的函数:spa
let isType = function (type) {
return function (obj) {
return toString.call(obj) == '[object ' + type + ']';
};
};
let isString = isType('String');
let isFunction = isType('Function');
复制代码
能够看出,引入 isType()
函数后,建立 isString()
、 isFunction()
函数就变得简单多了。这种经过指定部分参数来产生一个新的定制函数的形式就是偏函数。prototype