柯里化
函数可以分多次调用,从而得到结果
作用:参数复用,提前返回,延迟计算
例子
bind 原理
js
function curry() {
let result = [...arguments];
return function () {
if (arguments.length !== 0) return result.push(...arguments);
var add = 0;
for (var i = 0, l = result.length; i < l; i++) {
add += result[i];
}
return add;
};
}
const add = curry();
console.log(add(1, 12));
console.log(add(1, 22));
console.log(add());
js
// 原理是利用闭包把传入参数保存起来,当传入参数的数量足够执行函数时,就开始执行函数
function isType(type) {
return function (target) {
return `[object ${type}]` === Object.prototype.toString.call(target);
};
}
const isType = (type) => (target) =>
`[object ${type}]` === Object.prototype.toString.call(target);