【问题标题】:Object is property of window (global), window is instance of Object?对象是窗口的属性(全局),窗口是对象的实例?
【发布时间】:2017-06-18 04:57:04
【问题描述】:

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

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

【问题讨论】:

    标签: javascript object constructor window instanceof


    【解决方案1】:

    简短的回答是,全局 Window 对象是一个 Object,可以视为 Object 的一个实例,但在 JavaScript 中,这都是综合

    tl;dr 的答案……

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 2019-10-14
      • 2022-09-25
      • 2021-03-06
      • 1970-01-01
      相关资源
      最近更新 更多