当打印扩展字符串类JS的对象时,控制console.log的输出



我有一个扩展字符串类的类,我想知道如果你试图打印对象,你是否可以控制输出

这是我的课:

class betterString extends String {
constructor() {
super("Test")
this.RealString = "test 2"
}
func() {
return "Useless Value"
}
}

如果我初始化对象并尝试打印它,这就是输出:

[String (betterString): 'Test'] { RealString: 'test 2' }

有没有一种方法可以使console.log输出";测试";而不是一团糟?

弄清楚了,这回答了我想做的

它使用称为util的内置模块,可以设置对象的默认打印值

const util = require('util');
class MyClass {
constructor(a, b) {
this.a = a;
this.b = b;
}
[util.inspect.custom]() {
return `a is ${this.a} and b is ${this.b}`;
}
}
const my_object = new MyClass(1, 2);
console.log(util.inspect(my_object));
console.log(my_object);

Ciro Santilli是最初回答问题的人

由于您正在扩展String,您将可以访问原型链中的所有方法。CCD_ 3是来自CCD_ 4的方法。它将为您提供对象的字符串表示。

class BetterString extends String {
constructor() {
super("Test")
this.RealString = "test 2"
}
func() {
return "Useless Value"
}
}
const obj = new BetterString();
console.log(obj.toString());

相关内容

最新更新