有些人认为这是Variable name as a string in Javascript的副本,这是不正确的。如果您阅读下面的测试,您会理解所提供的方法并不令人满意,因为此变量 HAS 是变量,它不能是对象属性。
我一直在寻找“如何将变量名称转换为字符串”,但我得到的只是(如How to convert variable name to string in JavaScript?中所述)对象和仅在全局范围内起作用的东西。
有没有办法将变量名称DIRECTLY转换为字符串,而不会做奇怪的事情。
像:
var alertThis = "dont alert this"
alert(alertThis.forVarToString());
// This should return "alertThis"
此功能对我正在做的事情非常必要。
答案 0 :(得分:1)
我认为通常不可能(它是存储在某些符号表中的内部值)。全局变量当然在this
(例如窗口)上公开,因此您可以确定给定字符串是否为全局标识符:
var hello = 'Hi';
Object.keys(window).indexOf('hello') >= 0;
//=> true
关于方法,用于将任何标识符转换为其字符串表示(而不是它所指的),这不会非常有用,因为调用该方法,您必须先拥有该标识符,在这种情况下您已经知道它的名称。