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 に答える