一道面试题:js返回函数, 函数名后带多个括号的用法及join()的注意事项

2017-11-13 21:23:07 9,658 views

题目描述

实现函数 functionFunction,调用之后满足如下条件:
1、返回值为一个函数 f
2、调用返回的函数 f,返回值为按照调用顺序的参数拼接,拼接字符为英文逗号加一个空格,即 ', '
3、所有函数的参数数量为 1,且均为 String 类型
示例1

输入

functionFunction('Hello')('world')

输出

Hello, world
以下是我写的答案
    function functionFunction(str) {
        var f = function(a) {
          var b = [str];
          b.push(a);
          return b.join(", ");
//	return str + ", " + a;
        }
        return f;
      }
      console.log(functionFunction('Hello')('world'));//Hello, world

刚开始一看输入functionFunction('Hello')('world') , 函数名后带有2个括号且带有参数,有点懵逼。后经测试得后面的为子函数的参数,即a;
functionFunction('Hello')('world')('!');
经测试为函数f中的子函数的参数,如果你需要的话。

还有关于join()的用法,它为数组原型上的方法.......不是字符串的方法。所以需要将其转换为Array类型。当然直接拼接字符串更简单!!

13

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。