【发布时间】:2016-02-05 23:10:48
【问题描述】:
我创建了 2 个对象:
var Documentos = new QuadForm();
var Cadastro = new QuadForm();
并用很多选项初始化这个对象
Cadastro.initForm(options);
Documentos.initForm(options2);
然后我尝试使用 getName 方法分离每个对象管理的数据,但在第二个对象之后,myObjectName 变量被覆盖。
var QuadForm;
QuadForm = function () {
this.getName = function () {
// search through the global object for a name that resolves to this object
for (var name in window)
if (window[name] == this) {
window[name] = this;
window[window[name]] = window[name];
myObjectName= name;
break;
}
},
this.initForm = function (parms) {
this.getName()
$.extend(this, parms);
if (window.myState) {
delete window.myState;
}
this.containerId = parms.formId;
this.getForm(parms);
this.workflowLabels('hide');
然后我使用 window[myObjectName].totalRecords 但当它更改为最新的对象名称时,当然无法访问数据。
我该如何管理。
【问题讨论】:
-
你的目标是什么?您是否试图找到构造函数
QuadForm的每个实例?那么让我说你没有机会以适合所有情况的方式这样做!无论如何,很明显,您的变量已被覆盖,因为您多次覆盖它。 -
这不可能吗?同一视图中的两个实例以及管理来自多个实例的数据的类quadform?
标签: javascript object design-patterns architecture pattern-matching