Javascript 为什么我的输出是Object{}而不是:MyObj{}?
使用webdev工具控制台时,如果键入浏览器对象,则返回consoleJavascript 为什么我的输出是Object{}而不是:MyObj{}?,javascript,Javascript,使用webdev工具控制台时,如果键入浏览器对象,则返回console > console Console { } > console.log(console) undefined > Console { } 以这种方式适用于所有浏览器对象;但如果我使用自己的对象执行此操作,则输出没有我的objectName(MyObj),只有如下所示的“object”: > var MyObj=function(){} undefined > var instance =
> console
Console { }
> console.log(console)
undefined
> Console { }
以这种方式适用于所有浏览器对象;但如果我使用自己的对象执行此操作,则输出没有我的objectName(MyObj),只有如下所示的“object”:
> var MyObj=function(){}
undefined
> var instance = new MyObj();
undefined
> instance
Object { }
> console.log(instance);
undefined
Object { }
问题:
为什么我的输出是Object{}
而不是:MyObj{}
注:这是我第二次尝试澄清这个问题,第一次是,但没有效果。请不要做出像“编写一个toString()函数”这样的简单回答,这不是我想要的。我不仅在toString(intance+'')输出上寻找相同的行为,而且在“实例”输出本身上也寻找相同的行为。因为
MyObj
继承自内置的对象。控制台的输出就像是函数
、数组
、对象
等,但不是您创建的对象,它只是一个实例。所以,它只输出原型链中的内容。打印MyObj{}
当您第一次得到的答案不满意时,不要重新发布相同的问题。如果您调查返回的Console{…}
对象,您会发现您可以展开\uuuuuu proto\uuuuo:Console>\uuuu proto\uuo:object>..
。这表明console最终是对象{}
对象的一个Decentant,就像您的自定义对象一样。控制台返回给您的不是对象名称,而是您正在创建的对象类型。@Cerburs,我写了另一个问题,因为Zeta建议我在一篇文章中回答了很多问题。我不认为这是-1安全的情况,但不要复制确切的问题,然后再发布一次。把不同的问题分开。不过,我并不是说你应该发布更多关于这个主题的问题。原始问题包含了你需要的所有信息。