实现函数 functionFunction,调用之后满足如下条件:
1、返回值为一个函数 f
2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', '
3、所有函数的参数数量为 1,且均为 String 类型
function functionFunction(str) { var f = function(str2){ return str+", "+str2; } return f; }
function functionFunction() { var args = ([]).slice.call(arguments) var fn = function () { var args_fn = ([]).slice.call(arguments) return functionFunction.apply(null, args.concat(args_fn)) } fn.valueOf = function () { var res = args.reduce(function (a, b) { return a +', ' + b }) return res } return fn } 可以实现链式多参数调用,但是不能通过测试用例。。。哪位大神告诉我为啥
function functionFunction(str) { var ret = Array.prototype.slice.call(arguments).join(', '); var temp = function(str) { ret = [ret, Array.prototype.slice.call(arguments).join(', ')].join(', '); return temp; }; temp.toString = function(){ return ret; }; return temp; }
//输出:Hello, World functionFunction('Hello')('World').toString(); //输出:1, 2, 3, 4 functionFunction(1)(2)(3,4).toString();
function functionFunction (arg1) { return function(arg2){ return arg1 + ', ' + arg2; }; }