如何在Javascript中以字符串形式获取类对象的名称?

假设我在Javascript中实例化了一个这样的对象:


var myObj = new someObject();

现在,是否可以'myObj'从一种类方法中获取字符串形式的var对象的名称?


其他详细信息(已编辑):

我之所以想获取持有该对象引用的变量的名称,是因为我的new myObj会DIV在页面上创建一个需要单击一个函数的新clickable myObj.someFunction()。在插入新对象时,DIV我需要知道持有对象引用的变量的名称。也许有更好的方法吗?


您是对的,对术语的混淆感到抱歉。


我之所以想获取持有该对象引用的变量的名称,是因为我的新myObj会在页面上创建一个新的可单击DIV,该DIV需要调用函数myObj.someFunction()。当我插入新的DIV时,我需要知道持有对象引用的变量的名称。也许有更好的方法吗?


LEATH
浏览 1269回答 3
3回答

千巷猫影

简短的答案:不。myObj不是对象的名称,它是持有对该对象的引用的变量的名称-您可以有任意数量的其他变量持有对该对象的引用。现在,如果是您的程序,则要制定规则:如果您想说任何给定对象永远只能被一个变量引用,并努力在代码中强制执行,那么只需在对象上设置一个属性即可变量名。就是说,我怀疑您要的实际上是您真正想要的。也许更详细地描述您的问题...?Pedantry: JavaScript没有类。someObject是构造函数。给定对对象的引用,您可以使用构造函数属性获得对创建该对象的函数的引用。针对您提供的其他详细信息:您正在寻找的答案可以在以下位置找到:JavaScript回调范围(以及对SO上其他众多问题的回答-这对JS新手来说是一个普遍的困惑点)。您只需要将对对象成员的调用包装在一个闭包中,以保留对上下文对象的访问。

繁花不似锦

通过在函数中使用它,然后使用以下命令检查函数的来源,也许可以实现您的目标toString():var whatsMyName;  // Just do something with the whatsMyName variable, no matter whatfunction func() {var v = whatsMyName;}// Now that we're using whatsMyName in a function, we could get the source code of the function as a string:var source = func.toString();// Then extract the variable name from the function source:var result = /var v = (.[^;]*)/.exec(source);alert(result[1]); // Should alert 'whatsMyName';
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript