我希望SomeClass的getName()方法返回实例名称。在这种情况下" SomeInstance。"这可能吗,怎么做?
class SomeClass {
getName() {
return this.constructor.name;
}
}
var SomeInstance = new SomeClass();
document.write(SomeInstance.getName());
更新
这就是诀窍。
getName() {
for (var instance in window){
if (window[instance] === this){
return instance;
}
}
}
答案 0 :(得分:1)
如果你的变量在窗口范围内,那么工作的JS会在这里弄乱:https://jsfiddle.net/gdxo0sjn/
注意:由于Stackoverflow上的跨域安全错误,嵌入式代码段无法正常工作(代码段托管在其他域上)。
function getVariableName(instance)
{
for(obj in window)
if (window[obj]===instance) return obj;
return undefined;
}
class SomeClass {
getName() {
return this.constructor.name;
}
}
var SomeInstance = new SomeClass();
console.log(getVariableName(SomeInstance));

答案 1 :(得分:0)
找到了这个
getName() {
for (var instance in window){
if (window[instance] === this){
return instance;
}
}
}