我有一个扩展字符串类的类,我想知道如果你试图打印对象,你是否可以控制输出
这是我的课:
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());