Javascript 获取类实例的名称

标签 javascript class

function myClass(a,b,c) {
     this.alertMyName=function(){alert(instancename)}

{...}


}

然后

foo = myClass(a,b,c);
boo = myClass(a,b,c);

foo.alertMyName(); //it should alert 'foo'
boo.alertMyName(); //it should alert 'boo'

在实践中,对于创建大量 html 对象的类,我需要它来为它们的 ID 添加前缀,以将它们与此类的另一个实例创建的同一对象区分开来。

最佳答案

我在 Stack Overflow 上找不到解决方案,所以这是我从 ronaldcs 找到的解决方案在 dforge.net 上: http://www.dforge.net/2013/01/27/how-to-get-the-name-of-an-instance-of-a-class-in-javascript/

myObject = function () {
  this.getName = function () {
    // search through the global object for a name that resolves to this object
    for (var name in window)
      if (window[name] == this)
        return name;
  };
};

试一试:

var o = new myObject(); 
alert(o.getName()); // alerts "o"

关于Javascript 获取类实例的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972262/

相关文章:

javascript - 函数声明未定义 - 为什么?

javascript - ColdFusion 和 AJAX - 更新数据库

python - Python 类中的数学方法

java - java默认构造函数抛出异常

objective-c - Objective C : Given a Class id, 我可以检查这个类是否实现了某个协议(protocol)?还是有一定的选择器?

javascript - 使用 jQuery 采用自定义属性而不是 val()

javascript - 鼠标悬停在其区域 css 时显示的子菜单

javascript - 在下拉菜单中循环遍历年份

c++ - 无法在类中初始化 unique_ptr 的 vector

class - 类是内部构建的结构吗?