ES6模板字面量与对象

3
我有一个打印模板字面量的函数:
function func() {
  const obj = {
    a: 1,
    b: 2
  };
  console.log(`obj = ${obj}`);
}

它会打印出 "obj = [object Object]"。

如果我想要记录对象的内容(打印出 "obj = {a: 1, b: 2}"),我该如何修改代码呢?

1个回答

4

将JSON 字符串化

function func() {
  const obj = {
    a: 1,
    b: 2
  };
  console.log(`obj = ${JSON.stringify(obj)}`);
}

func();


它有效。谢谢你。但我坚持认为,打印对象内容时应该是默认行为,而不需要使用JSON.stringify。 - Jim Jin
1
@JimJin 普通对象支持的功能比 JSON 更多,因此可能会出现问题。你可以始终使用 console.log('obj = ', obj),因为它接受多个参数,并且你将获得对象的真实日志记录(你可以在控制台中探索它)。 - Gabriele Petrioli
1
@JimJin 然后使用 const obj = {a: 1, b: 2, toString(){ return JSON.stringify(this); }};。这就是 toString 的作用 - 对象的默认行为是打印 [object …] - Bergi
@GabrielePetrioli 我不仅使用console.log,还使用log4js记录这些对象参数。log4js支持多个参数吗? - Jim Jin
@Bergi 谢谢你!Node 支持这个语法吗?我不使用 Babel。另外,我需要修改每一个对象定义吗? - Jim Jin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接