Javascript 我能否将函数的参数转换为它自己的变量';她叫什么名字?
所以我想要这样的东西:Javascript 我能否将函数的参数转换为它自己的变量';她叫什么名字?,javascript,Javascript,所以我想要这样的东西: function trace(variable){ console.log(variables_name.toString()+":"+variable); } 这可能吗?如果可能,我如何调用/打印变量的名称 这样我就可以简洁地编写trace(a_变量),并且不必编写console.log(“变量名:+variable”)您可以传递地图: function trace(variableMap){ for (var key in variableMap){
function trace(variable){
console.log(variables_name.toString()+":"+variable);
}
这可能吗?如果可能,我如何调用/打印变量的名称
这样我就可以简洁地编写trace(a_变量)
,并且不必编写console.log(“变量名:+variable”)代码>您可以传递地图:
function trace(variableMap){
for (var key in variableMap){
console.log(key+":"+variableMap[key]);
}
}
trace ({someVar : someVar});
既然一个国防部接受了OP的这个答案,我将继续并补充这一点
trace({someVar});
似乎也能起作用。此表示法取决于ECMAScript 6的调用。否。函数调用中的参数表达式在调用之前进行求值。传递给函数的只是表达式值的一个副本。您并不总是关心参数名称,只需在方法中使用arguments
对象即可。没有任何方法比您给出的console.log()
示例更简单。您必须将变量名显式地作为字符串传递,而这正是直接调用console.log()
所要做的。在这种情况下,您可以编写一个预处理器,将所有trace(foo)
调用转换为console.log('foo:',foo')代码>。您甚至可以使用正则表达式来实现这一点。但在运行时当然不能这样做。旁注:不要连接值,否则对于复杂的值(如对象)不会得到有用的输出。将值作为参数传递给console.log
:console.log(“变量名:”,变量)代码>如果环境支持它,人们甚至可以使用简短的对象表示法:跟踪({someVar}),
将OP 99%传递到他们想要的地方。不幸的是,如果我想传递类似object.variable的东西,我必须先声明它。例如var len=Array.length;跟踪({len})
确实跟踪({someVar})
适用于我的所有用例。@Csteele5您可以执行跟踪({“Array.length”:Array.length})