我有一个定义了“类”的类,并且只创建了它的一个实例。该实例拥有一个最终会被传递的成员函数(这是一个鼠标处理程序,但这不重要)。由于我只会创建我的“类”的一个实例,因此我决定使用对象字面值将其重写为单例。当传递一个对象的成员函数时绑定“this”
所以我
var mySingleton = {
theObjects : [];
}
mySingleton.mouseHandler = (function() {
var that = this;
return function (e) {
for (var indx = 0; indx < that.theObjects.length; indx++) {
// do something to that.theObjects[indx];
}
}
}());
mySingleton.addObject = function(newObj) {
this.theObjects.push(newObj);
}
然而,当我尝试使用此代码(增加了一些对象后),我不断收到that.theObjects是未定义的错误。它是指for循环中的行。
line'var mySingleton = {theObjects = []; }'应该是'var mySingleton = {theObjects:[]}'。不知道这个问题虽然 –
你只是写了两次相同的事情... – fletom
哦,对不起,我在我的计算器问题中犯了一个错字。这在我的代码中确实是冒号,所以这不是问题。我会相应地编辑我的帖子。 – achow