如何在JavaScript中获取包含对象的变量的名称

时间:2015-11-03 11:14:52

标签: javascript oop variables

我可以使用以下代码获取Class的Class名称:



function MyClass() {
	return 42;   
}

var obj = new MyClass();

console.log(obj.constructor.name);




但是如何获取变量的名称?

3 个答案:

答案 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])
}