【问题标题】:making a function in an object chainable使对象中的函数可链接
【发布时间】:2015-08-01 15:14:09
【问题描述】:

我正在尝试实现一个可链接的对象,但不知道如何在函数中做到这一点。

这就是我希望它的工作方式:

$donate.ga('testing').go(value);

我的对象目前看起来像这样:

var $donate = {
    ga: function (value) {

    }
};

【问题讨论】:

标签: javascript


【解决方案1】:

你只需要让每个函数都返回对象的实例:

var $donate = {
    ga: function (value) {
        // logic
        return this;
    }
};

【讨论】:

    【解决方案2】:

    已经解决了here。您必须简单地在函数中返回对象。

    【讨论】:

      【解决方案3】:

      你需要像这样返回对象:

      var $donate = {
          ga: function (value) {
             //after some computation
             return this;
          },
          go: function(val) {
             //after some computation
             return this;
          }
      };
      

      如果您不返回 this(这是对当前 Object 的引用),您要么返回 undefined 或其他内容,并且您在 Object 中定义的方法超出范围(unknown) .

      【讨论】:

        【解决方案4】:

        你必须在每个子函数中 return this; 在关闭它之前。 例如 你的代码

        var $donate = {
            ga: function (value) {
               //perform your code here
               return this;  // <--- Dont forget to use this before closing the function nest
            },
            go: function(val) {
               //perform your code here
               return this;  // <--- Dont forget to use this before closing the function nest
            }
        };
        

        【讨论】:

          猜你喜欢
          • 2014-06-05
          • 2012-10-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-02
          • 2021-12-30
          • 2013-08-07
          相关资源
          最近更新 更多