什么是;document.writeln(Object.prototype)&引用;用javascript打印?

什么是;document.writeln(Object.prototype)&引用;用javascript打印?,javascript,Javascript,我尝试并得到以下输出: [对象] 我熟悉向Object.prototype添加新函数,以便程序中的每个对象都继承该新函数。但我有点好奇这是如何实现的。我猜这个物体应该是这种类型的 { name: expression, name: expression, ... } 我还猜测Object.prototype应该是其中一个Object属性的键,该属性的值是“[Object Object]”。现在你能告诉我我的理解是否正确吗 我还想知道“[object]”中的“object

我尝试并得到以下输出:

[对象]

我熟悉向Object.prototype添加新函数,以便程序中的每个对象都继承该新函数。但我有点好奇这是如何实现的。我猜这个物体应该是这种类型的

{
    name: expression,
    name: expression,
    ...
}
我还猜测Object.prototype应该是其中一个Object属性的键,该属性的值是“[Object Object]”。现在你能告诉我我的理解是否正确吗

我还想知道“[object]”中的“object”和“object”有什么区别。我还想知道上面提到的任何对象是否与前面的“.prototype”相关。请你澄清一下好吗


当我试图打印Object.prototype.Object、Object.prototype.Object、Object.prototype[Object]、Object.prototype[Object]和Object.prototype[0]时,我总是无法定义。如果prototype没有任何属性,我如何获得[object object]?

对象始终存在,
对象来自内部属性的值,这就是为什么

Object.prototype.toString.call([]) === "[object Array]";
Object.prototype.toString.call("") === "[object String]";
Object.prototype.toString.call(new Date) === "[object Date]";
其描述如下:

15.2.4.2
Object.prototype.toString()
#Ⓣ Ⓔ Ⓡ

调用
toString
方法时,将执行以下步骤:

  • 如果此值未定义,则返回
    “[对象未定义]”
  • 如果此值为null,则返回
    “[object null]”
  • 让O作为调用ToObject的结果,并将此值作为参数传递
  • 让class成为O的
    [[class]]
    内部属性的值
  • 返回串接三个字符串的结果字符串值
    “[object”
    、class和
    ”]”
  • 内部属性有点混乱。您可以在以下网址了解这些信息:

    该规范使用各种内部属性来定义对象值的语义。这些内部属性不是ECMAScript语言的一部分。本规范对它们的定义仅用于说明目的。ECMAScript的实现必须表现为它按照此处描述的方式生成和操作内部属性。内部属性的名称用双方括号括起来
    [[[
    ]]


    顺便说一句,
    Object.prototype.toString.call
    技巧是jQuery和其他库在其
    isArray
    函数中使用的,因为所有帧的内部属性都是相同的,即使每个帧都有自己版本的
    数组
    内置。突然间,一切都一清二楚。感谢您访问ec5.github.com。非常好的参考资料。@Rajkummasaniayan,是的。在可搜索的HTML中使用该规范非常好。相比之下,PDF版本是一个PITA。