文章 评论 浏览 31
function currying(fn, length) { length = length || fn.length; // 注释 1 return function (...args) { // 注释 2 return args.length >= length // 注释 3 ? fn.apply(this, args) // 注释 4 : currying(fn.bind(this, ...args), length - args.length) // 注释 5 } } const sum = function(t,y,u){ let args = [].slice.call(arguments) return args.reduce((a, b) => a + b) } ; const add = currying(sum); console.log(add(1,2)(2)(9)) ; // Uncaught TypeError: add(...)(...) is not a function
请问这个调用这个柯里化函数sum中的形参还要自己手动补吗? 我看这个形参少于实际调用add函数时就会报错,还是我调用的方式错了呢? @yygmind
var myClosure = (function outerFunction() {
var hidden = 1; return { inc: function innerFunction() { return hidden++; }, hidden };
}());myClosure.inc(); // 返回 1console.dir(myClosure.inc)myClosure.inc(); // 返回 2myClosure.inc(); // 返回 3console.dir(myClosure.inc)
文章 0 评论 0
接受
第 84 题:请实现一个 add 函数,满足以下功能