【问题标题】:How to turn variable name into string in JS? [duplicate]如何在JS中将变量名转换为字符串? [复制]
【发布时间】:2013-09-29 04:57:35
【问题描述】:

我正在尝试为 console.log 编写一个方便的包装器,并且我想打印传入的任何变量及其内容。

js中可以把变量名转成字符串吗?

【问题讨论】:

  • 您的意思是,将变量作为参数传递给函数并获取这些变量的名称?如果是这样,那是不可能的。写这样的东西甚至没有意义:myvariable.name。没看懂
  • 我不认为我理解你的问题。
  • 不,不可能。

标签: javascript console.log


【解决方案1】:

假设你想要这样的东西:

function Log(data)
{
    console.log(input variable name, data);
}

那我觉得不可能:

为了方便..你可以做类似的事情

console.log({ "your variable name": your variable});

这会将输入转换为包含您要记录的变量名称的对象。 输入更多内容,但可能会使控制台输出更具可读性。

【讨论】:

    【解决方案2】:

    有可能。这就是方法

    var passed_variable = '65'; // The actual variable
    var varname = 'passed_variable'; // The name of the variable in another variable
    

    现在,传递varname,但不是实际变量。当你需要变量的值时,你可以简单地做:

    console.log(varname, ' : ', window[varname]); // Outputs, passed_variable : 65
    

    我希望你能找到不使用它的方法。 :)

    【讨论】:

    • 除非passed_variable 驻留在全局空间中,否则它不会作为window[varname] 可见。而且我不想为了记录它们而将我的变量放在全局范围内。
    • 当然,当您希望它在全局范围内结束时,您可以使用 var 作为前缀 - 在这种情况下,日志显式不起作用(除非代码本身在全局范围内,在这种情况下 var 关键字毫无意义)
    • @JanDvorak,是的,这意味着它在全球范围内。
    • var 的作用正好相反。但是,即使已解决此问题,它仍然是进行平均日日志记录的不好方法。
    • @JanDvorak No var 在函数或范围限制器中使用。
    猜你喜欢
    • 2014-07-25
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多