我可以使用以下代码获取Class的Class名称:
function MyClass() {
return 42;
}
var obj = new MyClass();
console.log(obj.constructor.name);

但是如何获取变量的名称?
答案 0 :(得分:1)
你做不到。
考虑:
function MyClass() {
return 42;
}
var obj = new MyClass();
var ob2 = obj;
var ob3 = obj;
现在有三个变量都具有相同的值。如果有可能,你会得到哪一个?
变量与JavaScript中的值之间没有反向关系。
答案 1 :(得分:0)
这个问题在很大程度上打败了自己。用于此的用例通常是在扫描对象以查找某些键/值对时。即使您希望通过所有全局/窗口变量进行培养,您仍然可以执行以下操作:
for(var obj_name in window) {
if(window.hasOwnProperty && !window.hasOwnProperty(obj_name)) continue;
console.log(obj_name);
if(window[obj_name]) console.log(window[obj_name]);
}
答案 2 :(得分:-1)
试试这个
function MyClass() {
return 42;
}
var obj = new MyClass();
var name = /function (.{1,})\(/;
var results = (name).exec(obj.constructor);
if(results)
{
console.log(results[1])
}