首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以更改对象的console.log()输出吗?

可以更改对象的console.log()输出吗?
EN

Stack Overflow用户
提问于 2022-01-02 01:48:06
回答 1查看 474关注 0票数 0

我是JavaScript新手,但我来自Python和Java。我知道在这两种语言中,当输入是一个对象时,有一些方法可以更改控制台输出的内容。

代码语言:javascript
运行
复制
//Java example:
public class myClass{
public toString(){
return ("This is an object!");
}
}
myClass obj = new myClass();
System.out.println(obj); //Prints "This is an object!"

然而,当我为JS寻找一个示例时,我发现现有的toString()要求我每次都这样做:

代码语言:javascript
运行
复制
Console.log(obj + '')

为了实现所需的输出,否则它将只打印默认的对象文本。有什么方法可以和Java做同样的事情吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-02 01:51:00

我想您可以创建自己的函数,对其参数显式调用toString并对其进行记录:

代码语言:javascript
运行
复制
const obj = { toString() { return 'foo' } };
const myLog = obj => console.log(obj.toString());

myLog(obj);

没那么多,但我想这可能是你能做的最好的了。您也可以用该函数覆盖console.log,但这是个坏主意。

我不建议更改默认行为。让对象本身被记录,没有副作用(并且没有一个非对象被记录)是每一个正在调试的开发人员所期望的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70553097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档