【问题标题】:Javascript How to print an object using string interpolationJavascript 如何使用字符串插值打印对象
【发布时间】:2021-12-22 04:40:18
【问题描述】:

有什么方法可以使用字符串插值法打印对象吗?

const star = {
    id: 1,
    name: 'Arcturus',
    visualMag: -0.05,
};

这个方法不行

console.log(`${star}`); // [object Object]

这行得通

console.log(`${star.name}`); // 'Arcturus'

简单地使用 console.log(star) 就可以了

【问题讨论】:

标签: javascript object javascript-objects string-interpolation


【解决方案1】:

嘿,做这个简单的把戏:

console.log({star});

输出:

[Log] {star: {id: 1, name: "Arcturus", visualMag: -0.05}}

【讨论】:

  • 您缺少“使用字符串插值”部分。
【解决方案2】:

你可以使用 JSON.stringify

console.log(`${JSON.stringify(test)}`)

【讨论】:

  • 注意这里的模板字符串是没用的。改用console.log(JSON.stringify(test));
【解决方案3】:

当您在模板字面量中使用对象时,它会将对象强制转换为字符串。它在对象上查找toString 方法。如果没有找到,它将使用Object.prototype.toString 方法返回"[object Object]"

所以,给对象添加一个toString 属性。

const star = {
  id: 1,
  name: 'Arcturus',
  visualMag: -0.05,
};

Object.defineProperty(star, "toString", {
  value: function() {
    return JSON.stringify(this)
  }
})

console.log(`${star}`);

注意:您可以直接添加star.toString = function() { ... }。但是,这将为对象添加一个可枚举的属性,并在您直接记录该对象时显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2023-04-10
    相关资源
    最近更新 更多