对象是 window 的 属性(全局),window 是对象的实例?

Object is property of window (global), window is instance of Object?

我是 JavaScript 的新人。正如我们所知,Object 在 window 上是 属性,而 window 怎么可能是一个 Object 的实例呢?他们分享一些方法吗?我可以创建这样的对象吗?对不起我的英语,谢谢。 :)

window.hasOwnProperty("Object"); // return true
window instanceof Object // return true

简短的回答是全局 Window 对象是一个对象,可以 认为 作为对象的一个​​实例,但在 Java脚本,这就是全部综合

tl;dr 答案…

从其他 OO 语言(如 C++ 或 Java 转向 JavaScript 可能会令人困惑。 Java与其他语言一样,Script 不是纯面向对象的语言。特别是,没有 "class" 传统意义上被动充当实例模板和子 类 的纯声明。作为一种解释型语言(而不是像C++和Java这样的编译型语言),JavaScript是基于"prototype"函数的; class/sub-class 关系是 模拟的 通过实例的实例化方式和 "chain" 通过每个函数的 __proto__ 属性引用原型。

虽然 class 关键字已添加到最近的 JavaScript 标准中,但它的实现是建立在先前存在的函数定义和原型链机制之上的。 "Sub-classing" 可以通过在对函数调用 new 之前设置函数的 prototype 属性来实现。这将创建一个对象实例,其 __proto__ 属性由 prototype 属性的值定义。

查找成员数据和方法时,如果不在当前实例中,则在 __proto__ 属性链中搜索成员,直到找到或到达链的末尾。