首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将变量传递给函数后确定变量的原始名称

将变量传递给函数后确定变量的原始名称
EN

Stack Overflow用户
提问于 2010-08-04 17:06:10
回答 7查看 9.5K关注 0票数 32

我有一种感觉,这可能是不可能的,但我想确定在javascript中传递给函数的变量的原始变量名。我不知道如何更好地解释它,所以看看这个例子是否有意义。

代码语言:javascript
复制
function getVariableName(unknownVariable){
  return unknownVariable.originalName;
}

getVariableName(foo); //returns string "foo";
getVariableName(bar); //returns string "bar";

这是我正在开发的一个jquery插件,我希望能够显示传递给"debug“函数的变量的名称。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-08-04 17:08:17

你说得对,这在任何情况下都是不可能的,因为只有值被传递到函数中。

票数 22
EN

Stack Overflow用户

发布于 2017-09-15 09:28:34

多亏了ES6,这在某种程度上已经成为可能:

代码语言:javascript
复制
function getVariableName(unknownVariableInAHash){
  return Object.keys(unknownVariableInAHash)[0]
}

const foo = 42
const bar = 'baz'
console.log(getVariableName({foo})) //returns string "foo"
console.log(getVariableName({bar})) //returns string "bar"

唯一(小)的问题是你必须在{}之间包装你的未知变量,这没什么大不了的。

票数 10
EN

Stack Overflow用户

发布于 2014-06-08 03:37:07

所有的全局变量都是全局对象(this或window)的属性,不是吗?因此,当我想要找出变量的名称时,我创建了以下函数:

代码语言:javascript
复制
var getName = function(variable) {
  for (var prop in window) {
    if (variable === window[prop]) {
      return prop;
    }
  }
}
var helloWorld = "Hello World!";
console.log(getName(helloWorld)); // "helloWorld"

有时不起作用,例如,如果创建的两个字符串没有使用new运算符,并且具有相同的值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3404057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档