首页 > 试题广场 >

二次封装函数

[编程题]二次封装函数
  • 热度指数:38933 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
已知函数 fn 执行需要 3 个参数。请实现函数 partial,调用之后满足如下条件:
1、返回一个函数 result,该函数接受一个参数
2、执行 result(str3) ,返回的结果与 fn(str1, str2, str3) 一致
示例1

输入

var sayIt = function(greeting, name, punctuation) {     return greeting + ', ' + name + (punctuation || '!'); };  partial(sayIt, 'Hello', 'Ellie')('!!!');

输出

Hello, Ellie!!!
function partial(fn, str1, str2) {
    let result = (str) => {
        // return fn.bind(this,str1,str2,str);
        // 用bind反而不行。。。
        return fn.call(this,str1,str2,str);
    };
    return result;
}
用bind反而不行。。。奇怪了,对于何时用bind,何时用apply/call,还是有点懵逼
发表于 2023-04-28 14:17:41 回复(0)
function partial(fn, str1, str2) {

        return function result(str3) {

            return fn(str1, str2, str3)
        }

    }
发表于 2023-02-13 20:39:44 回复(0)
function partial(fn, str1, str2) {
    return t =>  fn(str1, str2, t)     
}

发表于 2022-12-06 17:13:00 回复(0)
利用闭包
function partial(fn, str1, str2) {
        return function(str3){
                return fn.call(this,str1,str2,str3)
        }
}
发表于 2022-11-15 21:14:32 回复(0)
function partial(fn, str1, str2) {
    return (str3)=>{
        return fn(str1,str2,str3)
    }
}

发表于 2022-08-26 20:10:39 回复(0)
function partial(fn, str1, str2) {
    // 函数柯里化
    let result = function(str3){
        return fn(str1,str2,str3)
    }
    return result
}

发表于 2022-07-07 13:54:42 回复(0)
function partial(fn, str1, str2) {
    return function result(str){
        return fn(str1,str2,str);
    }
}

发表于 2022-02-15 16:50:02 回复(0)
function partial(fn, str1, str2) {
    return (value)=>{ return fn(str1,str2,value)}
}
发表于 2022-01-13 11:09:04 回复(0)
function partial(fn, str1, str2) {
    return result=function (str3) {
        return fn(str1, str2, str3)
      }
}
发表于 2021-11-03 17:52:21 回复(0)
function partial(fn, str1, str2) {
    return (res)=>fn(str1, str2, res)
}
发表于 2021-11-01 14:43:24 回复(0)
function partial(fn, str1, str2) {
    return (s)=>fn(str1, str2,s)
}
发表于 2021-09-28 17:48:02 回复(0)
function partial(fn, str1, str2) {
return (str3)=>{return fn(str1,str2,str3)}
}
发表于 2021-09-27 09:54:04 回复(0)
function partial(fn, str1, str2) {
    return (v)=>fn.apply(this,[str1,str2,v])
}

发表于 2021-09-08 10:08:38 回复(0)
function partial(fn, str1, str2) {
    var self = this
    return function(str3) {
        return fn.call(self, str1, str2, str3)
    }
}

发表于 2021-09-07 22:46:40 回复(0)
function partial(fn, str1, str2) {
  return (str3) => fn(str1, str2, str3)
}
ES6 箭头函数
发表于 2021-08-01 10:54:56 回复(0)
function partial(fn, str1, str2) {
    return str3 => fn(str1, str2, str3);
}

发表于 2021-07-30 14:53:56 回复(0)