如何在JavaScript中获取包含对象的变量的名称
How to get the name of the variable containing the object in JavaScript
我可以用下面的代码获得类的类名:
function MyClass() {
return 42;
}
var obj = new MyClass();
console.log(obj.constructor.name);
但是如何获得变量的名称呢?
你不能。
考虑:
function MyClass() {
return 42;
}
var obj = new MyClass();
var ob2 = obj;
var ob3 = obj;
现在有三个变量都具有相同的值。如果可能的话,你会得到哪一个?
在JavaScript中,变量与其值之间没有反向关系。
这个问题在很大程度上失败了。这种情况通常是在扫描对象以查找某些键/值对时使用。即使在你想通过所有全局/窗口变量培养的情况下,你仍然可以这样做:
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]);
}
试试这个
function MyClass() {
return 42;
}
var obj = new MyClass();
var name = /function (.{1,})'(/;
var results = (name).exec(obj.constructor);
if(results)
{
console.log(results[1])
}
相关文章:
- 如何在HTML中显示服务器对象变量
- 在Javascript中重新分配对象变量时,原始对象会发生什么
- Javascript 方法看不到对象变量
- JavaScript对象范围-在对象方法中使用对象变量
- 将对象(变量)传递给angularjs指令
- 对象变量在 JavaScript 中是不可访问的
- 无法访问公共JavaScript对象变量
- 可以't获取具有“t”的对象变量;这个“;由setTimeout()函数调用的对象函数中的属性
- Javascript:如何在回调中设置父对象变量
- 从方法内部设置对象变量
- 访问对象中的对象变量
- JavaScript 中的对象变量
- 从 json 代码中删除 javascript 对象变量名称文本
- 将变量传递到对象变量中
- JavaScript 如何重新识别事件对象变量
- 从对象变量中获取子节点
- 使对象变量在所有“更深”的范围内都是可访问的
- 从方法 JavaScript 访问对象变量
- 如何在 javascript 中保存对象变量的状态
- 无法访问IE和Mozilla中javascript的类对象变量