找出实例变量名称本身

Find out instance variable name out of itself

本文关键字:变量名 实例      更新时间:2023-09-26

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

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

现在,我实例化这个类。

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

这将输出带有"测试"的警报。

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

是否可以以某种方式从被调用函数内部找出实例的变量名称?

感谢您的帮助!

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

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

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

你应该在myTestFunction中使用"this"。