如何控制台记录变量/函数的名称?

新手上路,请多包涵

我想这样做: log(variableOrFunction)

并能够产生这个: variableOrFunction: actualValue

我试过这个:

 export const log = (value) => {
  console.log('' + value + ':', value)
  console.log(value)
}

但我得到了这个: [object Object]:

这样做的正确之处是什么?

原文由 alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 274
2 个回答

您可以用一对大括号 ( {} ) 记录它们,这将创建一个以变量名称作为键的对象:

 function someFunction() {};

const someOtherFunction = () => {};

const someValue = 9;

console.log({someFunction});
console.log({someOtherFunction});
console.log({someValue});

const renamed = someFunction;

console.log({renamed})

原文由 CRice 发布,翻译遵循 CC BY-SA 3.0 许可协议

这对你有用吗?

 const log = function() {
  const key = Object.keys(this)[0];
  const value = this[key];
  console.log(`${key}:${value}`);
}

let someValue = 2;

log.call({someVlaue}); //someValue:2

也适用于功能,甚至是它本身。

 log.call({log});

// It would return the following
log:function() {
  const key = Object.keys(this)[0];
  const value = this[key];
  console.log(`${key}:${value}`);
}

原文由 clark 发布,翻译遵循 CC BY-SA 4.0 许可协议

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