javascript - 保存和检索多个js实例

标签 javascript

我有一个名为 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 block 中,我启动

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() 时,它不是我想要的正确的 obj...

除了将 obj1 和 obj2 声明为全局变量之外,我还能如何执行此操作?

最佳答案

您需要将事件处理程序设置在与 new 实例相同的闭包中。这将允许您访问处理程序内的变量。

关于javascript - 保存和检索多个js实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15752530/

相关文章:

javascript - 有没有有效的方法在 javascript 中使用 `__proto__` 或 `setPrototypeOf()`?

javascript - 基本 JavaScript onclick

javascript - 在页面上使用 css 缩放时使用 javascript 定位元素

javascript - 显示大陆 map 并缩放显示国家/地区

javascript - 获取输入类型范围的值

javascript - 打开时,模态内的 Iframe 不会滚动到顶部

Javascript 和 Firebase 3 - 使用电子邮件和密码创建用户

javascript - "modal"不被 Angular 识别为元素

javascript - 为什么我的 ng-controller 没有被调用?

javascript - 绑定(bind)onclick事件