我有一个名为myClass的“课程”
myClass= (function(config){
var _data, _args, _config;
var pubdata;
var setData = function(d){_data = d;};
var getData function(){return _data;};
var priFun = function(){};
return {
setData: setData
getData: getData
};
})
在HTML js块中,我发起
var obj1 = myClass(config);
var obj2 = myClass(config);
globalObjList= [];
globalObjList.push({'id': 'obj1', 'obj': obj1});
globalObjList.push({'id': 'obj2', 'obj': obj2});
obj1.setData(data1);
obj2.setData(data2);
稍后,当用户执行某些操作时,我想根据用户的选择检索obj1或obj2,这样我就可以使用与该对象关联的数据进行进一步的操作。
例如通过单击button1,检索obj1。我想要像
这样的东西var obj = getInstanceById('btn1');
obj.getData(); //this should return me data1
我不确定getInstanceById函数是如何工作的。我做了像
这样的事情getInstanceById = function(id){
//match the id with the id in globalObjList array, and return the obj
}
然而,这样,当以这种方式获取obj,并且执行getData()时,它不是我想要的对象....
除了将obj1和obj2声明为全局var?
之外,我该怎么做呢?答案 0 :(得分:0)
您需要在与new
实例相同的闭包中设置事件处理程序。这将允许您访问处理程序内的变量。