如何链接我的方法调用?

时间:2011-09-27 14:15:31

标签: javascript jquery method-chaining

我有一个对象:

var mubsisapi = {
        step1   : function(){alert("a")}, 
        step2   : function(){alert("b")}
    }

$.extend(false, mubsisapi)
mubsisapi.step1().step2();

提供step1()但不提供step2()step2()未发出提醒。我怎么能这样做?

5 个答案:

答案 0 :(得分:16)

不是JSON,而是javascript对象。它不是fluent,但它可以是:

var mubsisapi = {
        step1   : function(){alert("a"); return this;}, 
        step2   : function(){alert("b"); return this;}
    }

$.extend(false, mubsisapi)
mubsisapi.step1().step2();

答案 1 :(得分:9)

如果要将其链接起来,则需要从函数返回this

答案 2 :(得分:3)

是的,您的对象应如下所示:

var mubsisapi = {
    step1   : function(){alert("a"); return this; }, 
    step2   : function(){alert("b"); return this; }
}

返回以允许链接。

答案 3 :(得分:2)

var mubsisapi = {
        step1   : function(){alert("a"); return mubsisapi;}, 
        step2   : function(){alert("b"); return mubsisapi;}
    }

答案 4 :(得分:1)

您无法链接您的函数调用。您要么必须单独调用它们:

mubsisapi.step1();
mubsisapi.step2();

或者您可以更改step1功能,以便链接它们:

var mubsisapi = {
        step1   : function(){alert("a"); return mubsisapi;}, 
        step2   : function(){alert("b")}
    }

$.extend(false, mubsisapi)
mubsisapi.step1().step2();