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