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

发布于 2024-10-17 04:35:26 字数 358 浏览 1 评论 0原文

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

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

或者我只是一起走上了错误的道路?

谢谢。

I'm creating a page that will allow you to put multiple widgets on it, and some widgets can be duplicated on the page. So I need to understand the proper convention for creating an object instance on the fly.

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

Or am I just going down the wrong path all together?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静若繁花 2024-10-24 04:35:26

在 JavaScript 中,我们使用函数(所谓的构造函数)来实例化对象实例。

function Bulb() {
    this.state = 0;
}

// one instance
var bulb1 = new Bulb();

// another instance
var bulb2 = new Bulb();

您的代码不起作用,因为您的 bulb 是常规对象而不是函数,因此您无法调用它(您正尝试使用 bulb() 来调用它)。


更新:您可以将实例存储到数组全局变量中:

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.

In JavaScript, we use functions (so called constructor functions) to instantiate object instances.

function Bulb() {
    this.state = 0;
}

// one instance
var bulb1 = new Bulb();

// another instance
var bulb2 = new Bulb();

Your code doesn't work because your bulb is a regular object and not a function, so you cannot call it (which you are trying to do with bulb()).


Update: You could store your instances into an Array global variable:

var bulbs = [];

And then, whenever you create a new instance, just just make sure that you put it in the Array.

$('button').click(function() {
    var bulb = new Bulb();

    // do stuff with bulb

    // make sure to store it into the Array
    bulbs.push(bulb);
});

You can access the instances at any time like so:

bulbs[0] // the 1. instance
bulbs[1] // the 2. instance
// etc.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文