如何在javascript中初始化对象?

时间:2012-06-21 22:44:34

标签: javascript

我想在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()方法只需复制对象。 我需要做的是获取对象的实例。

请帮助。谢谢。

5 个答案:

答案 0 :(得分: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();

答案 1 :(得分:2)

PageSlider 已经是一个对象。因此,要获取它之外的实例,只需使用它的名称,如下所示:

var giveMeAnInstanceOfPageSlider = PageSlider;

答案 2 :(得分:2)

你可以这样做,因为PageSlider已经是一个对象

var pageSlider = PageSlider

答案 3 :(得分:1)

var pageSlider = PageSlider怎么样? PageSlider已经是一个对象了。

答案 4 :(得分:1)

代码背后的想法是getInstance将复制对象PageSlider,实际上使用现有PageSlider对象的值初始化一个新的空对象 - 相当于获得一个对象的实例。

这段代码有点奇怪,因为它模糊了JavaScript中的“类”和对象之间的界限(类似于编程语言Io所做的那样),并且更符合对象原型的概念。