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

// 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/

10-11 22:14
查看更多