我创建了一个JavaScript类,如下所示:
function MyClass() {
this.myProp = '';
}
MyClass.prototype.myTestFunction = function() {
alert('test');
}
现在,我实例化了这个类。
var myTestInstance = new MyClass();
myTestInstance.myTestFunction();
这将输出带有'test'的警报。
现在我希望将变量名'myTestInstance'放入函数'myTestFunction()'中,而不必将其作为参数传递。
以某种方式可以从被调用函数中找出实例的变量名吗?
感谢您的帮助!
编辑:只是添加信息为什么我需要这个:我在我的真实项目中创建的每个实例都是一个特殊的HTML表。在标题字段中是每列的排序按钮。因此,我动态添加了href='javascript:myTableInstance.sort()'
的链接元素。要在实例中动态打印它,我需要变量名。
会有另一种更好的解决方案吗?
答案 0 :(得分:5)
不,它没有任何意义。首先,实例没有绑定到单个变量(它可能被许多变量引用,它可以被无引用 - 也许作为某个数组的成员) - 所以问题“存储的变量的名称是什么实例“无法回答。其次,myTestFunction和myTestInstance的范围可能非常不同。在通常情况下,myTestFunction不会“看到”定义myTestInstance的范围 - 因此知道变量的名称将无济于事。
你应该在myTestFunction中使用“this”。