练习牛客网笔试题--前端js--38-二次封装函数
// 题目描述
// 实现函数 partialUsingArguments,调用之后满足如下条件:
// 1、返回一个函数 result
// 2、调用 result 之后,返回的结果与调用函数 fn 的结果一致
// 3、fn 的调用参数为 partialUsingArguments 的第一个参数之后的全部参数以及 result 的调用参数
// 输入 无
// 输出 无
1.自己的练习
// 1. call 可以传入多个参数
function partialUsingArguments(fn) {
[fn, ...arr] = arguments;
return function () {
return fn.call(null, ...arr, ...arguments);
}
}
// 2. apply 第二个参数是只能数组(类数组),且只有一个
function partialUsingArguments(fn) {
[fn, ...arr] = arguments;
return function () {
return fn.apply(null, arr.concat([...arguments]));
}
}
2.题解
function partialUsingArguments(fn) {
let args1 = Array.prototype.slice.call(arguments, 1)
return function() {
let args2 = Array.prototype.slice.call(arguments, 0)
return fn.apply(this, args1.concat(args2))
}
}