javascript - 实例化多个对象

标签 javascript object

在 Javascript 中,我正在创建一个像这样的对象:

var testObject = {
    value: "this is my initial value",
    setup: function() {
        value: "foo"
    }
};

现在,我希望能够实例化这个对象,所以我正在尝试:

var myFirstObject  = new testObject();
var mySecondObject = new testObject();

这样当我调用.setup()时,它只会更改引用的新创建对象的值。我怎样才能实现这个目标?这段代码似乎不起作用。

最佳答案

您不实例化对象,而是实例化函数。

var testObject = function() {
  this.value = "this is my initial value";
  this.setup = function() {
    this.value = "foo";
  }
}

var myFirstObject = new testObject();
var mySecondObject = new testObject();

编辑: 根据您的评论,以下是您如何使用此对象上的函数绑定(bind)到 DOM:

document.getElementById('idOfElem').addEventListener(
    'click', myFirstObject.clickHandler);

请记住,您无法保证点击处理程序将在对象的上下文中执行(即在您的点击处理程序中,this可能不是您的testObject 实例)。如果您的 clickHandler 打算以任何方式修改对象的实例变量,最好确保上下文如下:

document.getElementById('el').addEventListener('click', 
    function() { 
        myObj.handleClick.apply(myObj, arguments);
    });

关于javascript - 实例化多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13911506/

相关文章:

javascript - 流程图 : change the axis data type to time

javascript - jQuery拆分问题

c# - 是否可以返回多个不同类型的值?

c++ - 当传递给对象时,SDL_Surface 会在内存中存储图像的新实例,还是指向传递给它的图像?

javascript - 无法迭代 JavaScript 对象

javascript - Angularjs 连接两个对象

javascript - 从 iframe 调用 javascript 函数

javascript - Firebase - 允许用户根据数据库信息访问数据库的部分内容

Javascript 揭示模块模式 - 变量不会改变

javascript - 如何使用javascript在对象数组中执行计算