JS 如何通过一个变量获取变量本身的变量名?

比如:let a = 123; 我如何得到变量a对应的变量名‘a’?
注意:这里的a可能是任何类型。
我想实现的效果是:快速在log里面加前缀——
比如 打印一个shoppinglist对象, 我希望通过:

mylog(shoppinglist);

最终呈现的效果是:

clipboard.png

这样便于查看日志和搜索。

阅读 8.7k
3 个回答

使用ES6的一个语法,应该能满足你的需求

var shoppinglist = {"沐浴露":1, "洗衣粉":3};
console.log({shoppinglist});

应该不能, 不过你可以倒过来写,如

function mylog(str){
  console.log(str+'='+ eval(str));
}

let a=1;
mylog('a');

会输出

a=1
var shoppinglist = {"沐浴露":1, "洗衣粉":3}
console.log(Object.keys({shoppinglist})[0])  // shoppinglist

不过不能封装成函数,因为函数传参的过程中,传递的是变量的值,而非变量名。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题