我想在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()方法只需复制对象。 我需要做的是获取对象的实例。
请帮助。谢谢。
答案 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所做的那样),并且更符合对象原型的概念。