0

OK、私はjavascriptでチェーンメソッドを作成しています.メインのobjまたはクラスが関数である4つのプロパティにアクセスでき、プロパティはメインのobjができないいくつかの関数にアクセスできる必要があることをアーカイブしようとしています.

ここに例があります:

var Main = function(){

return {
 property1:function(){
return this;
},
property2:function(){
return this;    
},
etc:function(){
    return this;
}...

}
}

ご存知のように実行するには、次のようにします。

  Main().property1().property2().etc();

Main はそのプロパティにアクセスできますが、のMainプロパティのプロパティであるこのプロパティにはアクセスできませんMain。より簡単な方法: just the properties of Main must have access, not Main.

ここに例があります:

Main().property().innerProperty1().innerProperty2().etc()//cool, property1 can access to innerProperty 1 and 2 and etc()

しかし、私がこれをしたい場合:

Main().innerProperty() // ERROR, Main does not have acccess to innerProperty()

それはjavascripで可能でしょうか?連鎖可能でなければならないことを忘れないでください。

4

1 に答える 1

0

あなたが何を求めているのかまだよくわかりませんが、これが私が思いついたものです。あなたが言っていることを示すために、2 つの JS クラスを作成しました。

function Owner(name) {
    this.Name = name;

    this.ChangeName = function (newName) {
        this.Name = newName;
        return this;
    };
}


function Car(make, model, owner) {

    this.Make = make;
    this.Model = model;
    this.Owner = owner;

    this.UpdateMake = function (newMake) {
        this.Make = newMake;
        return this;
    };

    this.UpdateModel = function (newModel) {
        this.Model = newModel;
        return this;
    };

    this.UpdateOwner = function (newOwner) {
        this.Owner = newOwner;
        return this;
    };

}

これがフィドルです:http://jsfiddle.net/whytheday/zz45L/18/

最初に所有者を経由しない限り、車は所有者の名前にアクセスできません。

于 2013-06-12T20:48:49.760 に答える