猿问

JavaScript:获取参数值和已传递变量的名称

我想要做的就是传递给函数的变量的名称和该变量的值,并且只在一个变量传递给函数。所以:


var x = "anything";


function showName() {


}


showName(x);

要么


showName("x");

它将返回:“ x =任何”。


现在,我必须两次指定变量:


showName("x", x);

为了获得我要传入的变量的名称和值。


请注意,我对showName原型中的参数名称不感兴趣,但对调用函数中的变量名称不感兴趣。另外,传递的变量可能是局部变量,因此我不能使用window对象来查找变量。


梦里花落0921
浏览 598回答 3
3回答

慕妹3146593

简短的答案是您不能这样做。更长久的,邪恶的答案是,您可以带有一些真正的讨厌的罐头。而且它仅在从另一个函数调用时才有效。有两个有趣的属性可以帮助您arguments.callee呼叫者让fn做这样的事情:(function(){  var showMe = function(s){    alert(arguments.callee.caller.toString().match(/showMe\((\S)\)/)[1] +     ' = '+ s)  }  x = 1  showMe(x)})()arguments.callee.caller.toString()。match(..)[1]的作用是在调用showMe的函数中查找被调用的showMe并打印它及其值。但这仍然是相当有限的,因为它只会打到showMe(x)的第一个调用。因此,如果有两个调用,它将无法正常工作。但是,玩这些神秘的东西很有趣。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答