Javascript 为什么console.log(obj)显示obj的结构而不是toString()的返回值
我有一个具有以下结构的对象Javascript 为什么console.log(obj)显示obj的结构而不是toString()的返回值,javascript,Javascript,我有一个具有以下结构的对象 var obj = { toString: function(){ return "20" }, valueOf: function(){ return 10; } }; alert(obj) //20 console.log(obj) //Object {toString: function, valueOf: function} 与警报(obj)不同,为什么console.log(obj)显示对象结构而不是toString()的返回值 在这两
var obj = {
toString: function(){ return "20" },
valueOf: function(){ return 10; }
};
alert(obj) //20
console.log(obj) //Object {toString: function, valueOf: function}
与警报(obj)不同,为什么console.log(obj)显示对象结构而不是toString()的返回值
在这两种情况下,都需要字符串文本。console.log用于调试,而alert用于显示文本,因此,如果存在alert seek to字符串函数,则显示其结果,而不是显示[Object Object]。用方法的话来说
alert()
使用对象的toString()
方法将传递给它的对象转换为字符串[而]console.log()
不仅用于显示简单字符串,还允许您与传递给它的对象交互
另外,console.log()
用于调试。用他的话来说
例如,您可以在发生某些事情时将某些事情记录到控制台
您可以使用
console.log
查看完整的对象结构。这只是为了便于调试要在控制台中查看obj.toString()吗?使用:
Console.count(obj); //also will show how many times obj has been invoked
有用链接:
若您想在控制台中获取文本,那个么只需添加像下面这样的空字符串
console.log(obj + "");
我同意,但为什么console.log()不调用toString(),因为拥有完整的对象结构.console.log(新字符串(“hello”))对调试更有用//字符串{0:h',1:e',2:l',3:l',4:o',长度:5}console.log(字符串(“hello”)//他可能的副本