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/