从对象实例中获取变量名称

Get variable name from within object instance

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

我希望能够从方法内部访问这个类实例的var名称。 我可以在构造函数或其他东西上将实际的变量名称设置为字符串吗?

var myClass = function(filePath){
    this.run = function(){
        //  I want to access the string "x"
        console.log( this.variableName ); // ????
    };
};
var x = new myClass("./sayHi.js");

构造变量名称时将其作为参数传递

var myClass = function(assigned_name,filePath){
    this.variableName = assigned_name
    this.run = function(){
        console.log( this.variableName );
    }
}
var x = new myClass('x','./sayHi.js');
x.run()

输出:

'x'

适用于:

虽然很多人说这毫无意义,但我遇到了我需要它的情况。 附带说明一下,许多jQuery操作都依赖于知道自己的变量名称是什么的原则。 它总是"$"。 人们在将匿名函数分配给onclick事件时从jQuery方法内部引用"$",却没有意识到这正是您的问题所要求的。

如果 myClass() 对象动态分配回调到特定类实例的事件处理程序,则需要执行此操作,因为这些调用通常依赖于保存在特定类变量中的信息。 由于你的myClass()函数不像jQuery那样广泛,你不能指望它总是被分配给同一个变量,比如'$'。

在构造时将其自己的赋值变量名称传递给自身是我发现的让我的类实例知道其全局引用是什么的最佳方式。