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 回答