动态创建对象实例的惯例是什么?

时间:2011-02-11 19:56:11

标签: javascript object dynamic

我正在创建一个允许您在其上放置多个小部件的页面,并且可以在页面上复制一些小部件。因此,我需要了解动态创建对象实例的正确约定。

// 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
});

或者我只是一起走错路?

感谢。

1 个答案:

答案 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.