我正在创建一个允许您在其上放置多个小部件的页面,并且可以在页面上复制一些小部件。因此,我需要了解动态创建对象实例的正确约定。
// 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
});
或者我只是一起走错路?
感谢。
答案 0 :(得分:2)
在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.