1

私は次のコードを持っています:

function foo(){
    this.bar = {
        images: function() {
            this.example = "string";
            this.anotherFoo = true;
            (...)
            this.getBigPicturePositions = function(){};
            return this;
        },
        search: function(){
            this.thing = "string";
            this.anotherBar = false;
            (...)
            this.newAjaxSearch = function(){};
            return this;
        }
    }
}

そして、私はこの宣言を持っています:

var foo = new foo();
foo.start({
    bar: {
        images: {
            getBigPicturePositions: true
        },
        search: {
            newAjaxSearch: true,
            idontexist: true
        }
    }
});

指定されたメソッドを開始するこのような関数を作成するにはどうすればよいですか? 必要なときに特定のメソッドを開始するには、これが必要です(もちろん存在する場合)。私の例では、次のようなものを取得する必要があります:

foo.bar.images().getBigPicturePositions();
foo.bar.search().newAjaxSearch();

ご協力ありがとうございました!私はJavaScriptオブジェクトの初心者です。


更新:問題はCrazyTrainによって提示されたソリューションで解決されますが、コードも更新しました。結果を表示するには、このFiddleをチェックしてください

4

1 に答える 1