实现函数 functionFunction,调用之后满足如下条件:
1、返回值为一个函数 f
2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', '
3、所有函数的参数数量为 1,且均为 String 类型
functionFunction('Hello')('world')
Hello, world
functionFunction('Hello')('world')Hello, world
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;
};
}