How can I chain my method calls?

大兔子大兔子 提交于 2019-11-27 05:58:30

问题


I have an object:

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

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

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


回答1:


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();



回答2:


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




回答3:


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.




回答4:


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



回答5:


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();


来源:https://stackoverflow.com/questions/7570635/how-can-i-chain-my-method-calls

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!