我是JavaScript的新手。我们知道Object是窗口上的属性,窗口如何成为Object的实例?他们分享一些方法吗?我可以创建这样的对象吗?对不起我的英文,谢谢。 :)
window.hasOwnProperty("Object"); // return true
window instanceof Object // return true
答案 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__
属性链,直到找到该成员或到达链的末尾。