获取变量的名称(如C#中的nameof运算符)

时间:2016-05-05 17:56:30

标签: javascript nameof

我们假设我们有以下代码:

const myVariable = { age: 7, name: "Hunter" };

我想知道变量的名称,而不仅仅是它的值,并将其放在字符串中或记录它或者:

const s = nameof(myVariable) + ': ' + JSON.stringify(myVariable);

我希望看到的结果是:

"myVariable: {"age":7,"name":"Hunter"}"

期待看到您的解决方案。

1 个答案:

答案 0 :(得分:4)

这是我在Q& A风格中的答案,它带来了一些妥协。诀窍是通过将参数括在花括号中来将参数传递给对象内部的函数名称,例如nameof({myVariable})而不是nameof(myVariable)

遵循此约定,解决方案可能如下所示:

var HD = HD || {};
HD.nameof = function (obj) {
  return Object.keys(obj)[0];
}

这就是我用它来获取变量/对象的名称加上对象的内容/变量的值:

const s = HD.nameof({myVariable}) + ': ' + JSON.stringify(myVariable);   

因此,s将包含上述问题中所要求的结果。