我将一个名为的 JavaScript 对象放在一起,该对象ListBox
接受一个二维数组,并将其输出到具有固定列标题、可滚动内容的表中,并可通过单击列标题进行排序。为了让 HTML 包含调用对象自己的方法的事件处理程序,对象需要知道自己的实例变量名称,例如....
var MyList = new ListBox();
设置列和内容后,适当的方法将生成 HTML...
...
<td class="ListBox_ColumnTitle" onclick="MyList.SortByColumn(1)">...</td>
...
通过在 stackoverflow 上搜索,我找到了以下代码,并对其稍作修改,以便找到正确的对象实例:
for (var v in window) {
try {
if (window[v] instanceof ListBox) { InstanceName = v; break; }
}
catch (e) { }
}
然而,这在构造函数中不起作用——它根本找不到实例。之后它工作得很好,但我希望能够在构造函数中做到这一点,以使使用 ListBox 的代码更简单——这可能吗?
我也意识到将变量名作为构造函数的参数传递会更简单,但如果可以的话,我想避免这种情况。