在对象链中创建一个函数

时间:2015-05-20 11:37:40

标签: javascript

我正在尝试实现一个可链接的对象,但无法弄清楚如何在函数中执行此操作。

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

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

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

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

    }
};

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您需要像这样返回Object:

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

如果你没有返回(这是对当前Object的引用),你要么返回undefined,要么返回你的对象中定义的方法只是超出范围(未知)。

答案 3 :(得分:0)

在关闭之前,你必须在每个子功能中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
    }
};