美文网首页
add(1)(2)(3)自身连续调用的实现方

add(1)(2)(3)自身连续调用的实现方

作者: 9540cfc28488 | 来源:发表于2017-06-29 22:19 被阅读40次

今天面试的时候遇到了这样的一个题目实现add(1)(2)(3)返回6的add函数。

第一个想法就是利用闭包返回函数达到目的代码如下

function add(){
  var arg1 = arguments[0];
  return function(){
    var arg2 = arguments[0];
    return function(){
      var arg3 = arguments[0];
      return arg1*arg2*arg3;
    }
  }
}

这个解决方法可以解决这个问题但是当函数调用次数发生变化的时候这个解决方法久嗝屁了!记得原来看过一个文章说的是利用函数的toString()valueOf的重写达到连续调用的例子但是由于时间太久了面试的时候回忆不出来!

回到家后百度了一下代码是这样子的

function add(){
  var sum = arguments[0];
  function temp(){
    sum = sum + arguments[0];
    return temp;
  }
  temp.toString = function(){
    return sum;
  }
  return temp;
}

相关文章

  • add(1)(2)(3)自身连续调用的实现方

    今天面试的时候遇到了这样的一个题目实现add(1)(2)(3)返回6的add函数。 第一个想法就是利用闭包返回函数...

  • js中的valueOf和toString的隐式调用

    柯里化函数 实现一个函数:add(1,2)(3) -> 6add(1)(2)(3) -> 6add(1)(2)(...

  • 柯里化函数

    // 实现一个add方法,使计算结果能够满足如下预期:add(1)(2)(3) = 6;add(1, 2, 3)(...

  • Java 常用集合

    1. ArrayList 基于动态数组实现,可以插入空数据,支持随机访问。ArrayList在调用 add() 方...

  • 实现add(1)(2) =3

    光这个的话,可以通过闭包的方式实现了 我给这个加了一个难度,如何才能实现一直调用 无限链式调用实现的关键在于 对象...

  • 一些常见面试题

    递归实现阶乘 实现 add(2)(3) add(2, 3) 都可以求出结果5的add函数() 提供数组[5, 2...

  • JS实现add(1)(2)(3)(4)的调用方式

    1.第一种 这个add函数可以无限次调用循环调用,并且把所有传进去的值相加,最后返回相加总数。这道题咋一看有点特别...

  • 字节一个面试题

    实现 如下效果add(2,3,4).sumOf()add(2)(3,4).sumOf() // 9add(2)(3...

  • TS public private protected

    类成员修饰符 public 1.自身调用2.子类可以调用3.实例调用 private 1.自身调用 protect...

  • 链表实现队列

    分解着一个一个方法来看如何用链表实现队列: 1. 构造方法 2. add 行1: 行2: 行3: 那么当调用了需多...

网友评论

      本文标题:add(1)(2)(3)自身连续调用的实现方

      本文链接:https://www.haomeiwen.com/subject/yaivcxtx.html