【问题标题】:How can I chain my method calls?如何链接我的方法调用?
【发布时间】:2014-10-03 01:59:44
【问题描述】:
我有一个对象:
var mubsisapi = {
step1 : function(){alert("a")},
step2 : function(){alert("b")}
}
$.extend(false, mubsisapi)
mubsisapi.step1().step2();
是给step1(),但不是给step2()。 step2() 不发出警报。我该怎么做?
【问题讨论】:
标签:
javascript
jquery
method-chaining
【解决方案1】:
不是 JSON,而是 javascript 对象。不是fluent,但可以是:
var mubsisapi = {
step1 : function(){alert("a"); return this;},
step2 : function(){alert("b"); return this;}
}
$.extend(false, mubsisapi)
mubsisapi.step1().step2();
【解决方案3】:
是的,您的对象应该如下所示:
var mubsisapi = {
step1 : function(){alert("a"); return this; },
step2 : function(){alert("b"); return this; }
}
返回自身以允许链接。
【解决方案4】:
var mubsisapi = {
step1 : function(){alert("a"); return mubsisapi;},
step2 : function(){alert("b"); return mubsisapi;}
}
【解决方案5】:
你不能链接你的函数调用。您要么必须单独调用它们:
mubsisapi.step1();
mubsisapi.step2();
或者您可以更改您的 step1 功能,以便将它们链接起来:
var mubsisapi = {
step1 : function(){alert("a"); return mubsisapi;},
step2 : function(){alert("b")}
}
$.extend(false, mubsisapi)
mubsisapi.step1().step2();