Javascript 如何在javascript中初始化一个对象?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/11147904/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to initialize an object in javascript?
提问by newbie
I would like to initialize an object in javascript..
我想在 javascript 中初始化一个对象..
My code is as follows:
我的代码如下:
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;
}
}
Using the getInstance() method just copy the object. What i need to do is to get the instance of the object.
使用 getInstance() 方法只需复制对象。我需要做的是获取对象的实例。
Help please. Thank you.
请帮忙。谢谢你。
回答by Bryan
I would recommend prototyping, such as the following
我会推荐原型设计,例如以下
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();
回答by raina77ow
PageSlider isan object already. So to get an instance outside of it, just use its name, like this:
PageSlider已经是一个对象。所以要在它之外获取一个实例,只需使用它的名称,如下所示:
var giveMeAnInstanceOfPageSlider = PageSlider;
回答by Jeff Robert Dagala
You can do it this way since PageSlider is already an object
你可以这样做,因为 PageSlider 已经是一个对象
var pageSlider = PageSlider
var pageSlider = PageSlider
回答by Jeff Robert Dagala
The idea behind the code is that getInstance
will copy the object PageSlider
, in effect initializing a new, empty object using the values of the existing PageSlider
object — equivalent to getting an instance of the object.
代码背后的想法是getInstance
复制对象PageSlider
,实际上是使用现有PageSlider
对象的值初始化一个新的空对象——相当于获取对象的一个实例。
This code is kind of strange as it blurs the line between "classes" and objects in JavaScript (kind of similar to what the programming language Io does), and more true to the notion of object prototypes.
这段代码有点奇怪,因为它模糊了 JavaScript 中“类”和对象之间的界限(有点类似于编程语言 Io 所做的),并且更符合对象原型的概念。
回答by blockhead
How about var pageSlider = PageSlider
. PageSlider
is already an object.
怎么样var pageSlider = PageSlider
。PageSlider
已经是一个对象。