为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梦里花落0921 2019-11-18 13:00:59
我想要做的就是传递给函数的变量的名称和该变量的值,并且只在一个变量传递给函数。所以:var x = "anything";function showName() {}showName(x);要么showName("x");它将返回:“ x =任何”。现在,我必须两次指定变量:showName("x", x);为了获得我要传入的变量的名称和值。请注意,我对showName原型中的参数名称不感兴趣,但对调用函数中的变量名称不感兴趣。另外,传递的变量可能是局部变量,因此我不能使用window对象来查找变量。
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

简短的答案是您不能这样做。


更长久的,邪恶的答案是,您可以带有一些真正的讨厌的罐头。而且它仅在从另一个函数调用时才有效。


有两个有趣的属性可以帮助您


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)的第一个调用。因此,如果有两个调用,它将无法正常工作。


但是,玩这些神秘的东西很有趣。


查看完整回答
反对 回复 2019-11-18
  • 3 回答
  • 0 关注
  • 597 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信