【问题标题】:How to Define a function to invoke like this: function1().function2()?如何定义要调用的函数:function1().function2()?
【发布时间】:2018-10-21 08:20:28
【问题描述】:
 function1().function2();

如何定义一个这样调用的函数?

【问题讨论】:

标签: javascript ecmascript-6


【解决方案1】:

除了其他答案之外,您通常会在编写流畅的接口时执行此操作,您将返回父对象以允许方法链接,您可以这样做:

var calculator = (function() {
      var i = 0;
      var public = {};
      public.add = function(a) { i += a; return public; }
      public.sub = function(a) { i -= a; return public; }
      public.equals = function() { return i; }
      return public;
})();
    
console.log(calculator.add(2).sub(3).add(20).equals());

【讨论】:

    【解决方案2】:

    这里有一个工作示例,您可以调用function1 并将对象映射到您想要的功能。

    function function1() {
      return {
        function2: f2
      }
    }
    
    function f2() {
      return "do something";
    }
    
    console.log(function1().function2())

    【讨论】:

      【解决方案3】:

      您需要function1 才能返回具有function2 属性的对象。例如:

      function f1() {
        return {
          f2() {
            console.log('foo');
          }
        };
      }
      f1().f2();

      【讨论】:

      • 他可能正在寻找可以返回父对象的函数,以便他可以做fn1().fn2().fn1()...
      • 问题没有具体说明,所以我没有假设任何事情。
      猜你喜欢
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多