为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

LEATH 2019-10-19 14:52:59
假设我在Javascript中实例化了一个这样的对象:var myObj = new someObject();现在,是否可以'myObj'从一种类方法中获取字符串形式的var对象的名称?其他详细信息(已编辑):我之所以想获取持有该对象引用的变量的名称,是因为我的new myObj会DIV在页面上创建一个需要单击一个函数的新clickable myObj.someFunction()。在插入新对象时,DIV我需要知道持有对象引用的变量的名称。也许有更好的方法吗?您是对的,对术语的混淆感到抱歉。我之所以想获取持有该对象引用的变量的名称,是因为我的新myObj会在页面上创建一个新的可单击DIV,该DIV需要调用函数myObj.someFunction()。当我插入新的DIV时,我需要知道持有对象引用的变量的名称。也许有更好的方法吗?
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

简短的答案:不。myObj不是对象的名称,它是持有对该对象的引用的变量的名称-您可以有任意数量的其他变量持有对该对象的引用。


现在,如果是您的程序,则要制定规则:如果您想说任何给定对象永远只能被一个变量引用,并努力在代码中强制执行,那么只需在对象上设置一个属性即可变量名。


就是说,我怀疑您要的实际上是您真正想要的。也许更详细地描述您的问题...?


Pedantry: JavaScript没有类。someObject是构造函数。给定对对象的引用,您可以使用构造函数属性获得对创建该对象的函数的引用。


针对您提供的其他详细信息:

您正在寻找的答案可以在以下位置找到:JavaScript回调范围(以及对SO上其他众多问题的回答-这对JS新手来说是一个普遍的困惑点)。您只需要将对对象成员的调用包装在一个闭包中,以保留对上下文对象的访问。


查看完整回答
反对 回复 2019-10-19
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

通过在函数中使用它,然后使用以下命令检查函数的来源,也许可以实现您的目标toString():


var whatsMyName;


  // Just do something with the whatsMyName variable, no matter what

function 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';


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 1268 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信