Open xxleyi opened 4 years ago
竟然使用到了很多技能点...
var partial = function() { const fn = arguments[0]; const args = Array.prototype.slice.call(arguments, 1); // Return a function that calls fn return function() { var remainingArgs = Array.prototype.slice.call(arguments); return fn.apply(this, args.concat(remainingArgs)); } }
粗略列一下:
fn.call(this, arg1, arg2); fn.apply(this, [arg1, arg2]);
call 是按位置参数依次传递,apply 是将所有参数构成一个列表统一传递。为什么会有这种区别?
回头反思:JS中实现 curry 函数的常见方法里,是顺便实现了偏函数的。
竟然使用到了很多技能点...
粗略列一下:
call 是按位置参数依次传递,apply 是将所有参数构成一个列表统一传递。为什么会有这种区别?
回头反思:JS中实现 curry 函数的常见方法里,是顺便实现了偏函数的。