0

我创建了一个 JavaScript 类,如下所示:

function MyClass() {
    this.myProp = '';
}
MyClass.prototype.myTestFunction = function() {
    alert('test');
}

现在,我实例化这个类。

var myTestInstance = new MyClass();
myTestInstance.myTestFunction();

这会输出带有“测试”的警报。

现在我想将变量名“myTestInstance”放入函数“myTestFunction()”中,而不必将其作为参数传递。

是否有可能从被调用函数内部找出实例的变量名?

感谢您的帮助!

编辑:只是为了添加我需要这个的信息:我在真实项目中创建的每个实例都是一个特殊的 HTML 表。在标题字段中是每一列的排序按钮。因此,我动态添加了一个带有href='javascript:myTableInstance.sort()'. 要在实例中动态打印它,我需要变量名。

会有另一个更好的解决方案吗?

4

1 回答 1

5

不,它没有任何意义。首先,实例不绑定到单个变量(它可能被许多变量引用,它可能被无引用 - 也许作为某个数组的成员) - 所以问题“存储的变量的名称是什么实例”是无法回答的。其次,myTestFunction 和 myTestInstance 的范围可能非常不同。在通常情况下, myTestFunction 不会“看到”定义了 myTestInstance 的范围 - 因此知道变量的名称将无济于事。

您应该只在 myTestFunction 中使用“this”。

于 2012-06-06T09:33:56.617 回答