我正在创建一个页面,该页面允许您在其中放置多个小部件,并且某些小部件可以在该页面上重复。因此,我需要了解用于动态创建对象实例的正确约定。
// my bulb object
var bulb = {
state: 0
};
// programatically, hard-coded instance name of 'bulb1'
var bulb1 = new bulb();
$('button').click(function() {
// create another new bulb instance here with dynamic name
});
还是我一起走错了路?
谢谢。
最佳答案
在JavaScript中,我们使用函数(所谓的构造函数)实例化对象实例。
function Bulb() {
this.state = 0;
}
// one instance
var bulb1 = new Bulb();
// another instance
var bulb2 = new Bulb();
您的代码不起作用,因为您的
bulb
是常规对象而不是函数,因此您无法调用它(您正在尝试使用bulb()
进行操作)。更新:您可以将实例存储到Array全局变量中:
var bulbs = [];
然后,无论何时创建新实例,只需确保将其放入数组即可。
$('button').click(function() {
var bulb = new Bulb();
// do stuff with bulb
// make sure to store it into the Array
bulbs.push(bulb);
});
您可以随时访问实例,如下所示:
bulbs[0] // the 1. instance
bulbs[1] // the 2. instance
// etc.
关于javascript - 动态创建对象实例的约定是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4973405/