繁体   English   中英

Javascript 如何使用字符串插值打印对象

[英]Javascript How to print an object using string interpolation

有没有办法使用字符串插值方法打印对象?

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

这个方法不行

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

这有效

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

只需使用 console.log(star) 即可

嘿,做这个简单的把戏:

console.log({star});

输出:

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

您可以使用 JSON.stringify

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

当您在模板字面量中使用对象时,它会将对象强制转换为字符串。 它在对象上寻找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() { ... } 但是,这会向对象添加一个可枚举属性,并且会在您直接记录对象时显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM