10

我有一个对象:

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

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

是给予step1()而不是给予step2()step2()不发出警报。我怎样才能做到这一点?

4

5 回答 5

16

不是 JSON,而是 javascript 对象。它不是流利的,但它可以是:

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

$.extend(false, mubsisapi)
mubsisapi.step1().step2();
于 2011-09-27T14:18:10.320 回答
9

this如果你想链接它,你需要从函数中返回。

于 2011-09-27T14:17:21.303 回答
3

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

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

返回自身以允许链接。

于 2011-09-27T14:20:45.767 回答
2
var mubsisapi = {
        step1   : function(){alert("a"); return mubsisapi;}, 
        step2   : function(){alert("b"); return mubsisapi;}
    }
于 2011-09-27T14:24:05.767 回答
1

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

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

或者您可以更改 step1 函数,以便将它们链接起来:

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

$.extend(false, mubsisapi)
mubsisapi.step1().step2();
于 2011-09-27T14:19:00.517 回答