开发者

How can I chain my method calls?

开发者 https://www.devze.com 2023-04-07 18:37 出处:网络
I have an object: var mubsisapi = { step1: function(){alert(\"a\")}, step2: function(){alert(\"b\")} } $.extend(false, mubsisap开发者_如何学编程i)

I have an object:

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

$.extend(false, mubsisap开发者_如何学编程i)
mubsisapi.step1().step2();

It is give step1() but not give step2(). step2() does not give an alert. How can I do this?


Not JSON, but javascript object. It's not fluent, but it can be:

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

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


You need to return this from the function if you want to chain it.


Yes, your object should look like this:

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

returning itself to allow chaining.


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


You cannot chain your function calls. You either have to call them separately:

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

or you can change your step1 function so you can chain them:

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

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

精彩评论

暂无评论...
验证码 换一张
取 消