Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能否将函数的参数转换为它自己的变量';她叫什么名字?_Javascript - Fatal编程技术网

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})