对象是窗口(全局)的属性,窗口是Object的实例?

时间:2017-06-18 04:57:04

标签: javascript object constructor window instanceof

我是JavaScript的新手。我们知道Object是窗口上的属性,窗口如何成为Object的实例?他们分享一些方法吗?我可以创建这样的对象吗?对不起我的英文,谢谢。 :)

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

1 个答案:

答案 0 :(得分:0)

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

tl;博士回答......

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

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

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

相关问题