5

javascriptでオブジェクトを初期化したい..

私のコードは次のとおりです。

var PageSlider = {

    sliders: [],

    addSlider: function(display, target, itemClass, width, height, itemsPerPage, defaultPage){
        var slideConfig = {
                display : display,
                target : target
        };
        var slider = this.createSlider(slideConfig);
        slider.initSlider();
        this.sliders.push(slider);

    },

    copy : function(obj) {
        if (null == obj || "object" != typeof obj) return obj;
        var copy = obj.constructor();
        for (var attr in obj) {
            if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
        }
        return copy;
    },

    getInstance : function(){
        var copy = PageSlider.copy(PageSlider);
        this.sliders.length = 0;
        return copy;
    }

}

getInstance() メソッドを使用して、オブジェクトをコピーするだけです。私がする必要があるのは、オブジェクトのインスタンスを取得することです。

助けてください。ありがとうございました。

4

5 に答える 5

8

次のようなプロトタイピングをお勧めします

var PageSlider = function() {
    this.sliders = [];
}

PageSlider.prototype.addSlider = function(display, target, itemClass, width, height, itemsPerPage, defaultPage){
    var slideConfig = {
            display : display,
            target : target
    };
    var slider = this.createSlider(slideConfig);
    slider.initSlider();
    this.sliders.push(slider);

}

slider = new PageSlider();
于 2012-06-21T22:48:57.753 に答える
2

PageSliderすでにオブジェクトです。したがって、インスタンスをその外部に取得するには、次のようにその名前を使用します。

var giveMeAnInstanceOfPageSlider = PageSlider;
于 2012-06-21T22:47:46.283 に答える
2

PageSliderはすでにオブジェクトであるため、この方法で実行できます

var pageSlider = PageSlider

于 2012-06-21T22:49:19.367 に答える
1

どうですかvar pageSlider = PageSliderPageSliderすでにオブジェクトです。

于 2012-06-21T22:47:35.670 に答える
1

コードの背後にある考え方はgetInstance、オブジェクトをコピーしPageSlider、実際には、既存のオブジェクトの値を使用して新しい空のオブジェクトを初期化するPageSliderことです。これは、オブジェクトのインスタンスを取得することと同じです。

このコードは、JavaScriptの「クラス」とオブジェクトの間の境界線を曖昧にし(プログラミング言語Ioが行うものと似ています)、オブジェクトプロトタイプの概念により忠実であるため、ちょっと奇妙です。

于 2012-06-21T22:48:24.657 に答える