Javascript 对象是窗口的属性(全局),窗口是对象的实例?
我是JavaScript新手。正如我们所知,对象是window的属性,window怎么可能是对象的实例?他们有共同的方法吗?我可以创建这样的对象吗?对不起,我的英语不好,谢谢。:)Javascript 对象是窗口的属性(全局),窗口是对象的实例?,javascript,object,constructor,window,instanceof,Javascript,Object,Constructor,Window,Instanceof,我是JavaScript新手。正如我们所知,对象是window的属性,window怎么可能是对象的实例?他们有共同的方法吗?我可以创建这样的对象吗?对不起,我的英语不好,谢谢。:) 简而言之,全局窗口对象是一个对象,可以被认为是一个对象的实例,但在JavaScript中,这一切都是合成的 tl;博士回答 从其他OO语言(例如C++或java)到JavaScript可能会混淆。JavaScript与其他语言不同,它不是一种纯OO语言。特别是,在传统意义上,没有“类”纯声明被动地充当实例和子类的模板
简而言之,全局窗口对象是一个对象,可以被认为是一个对象的实例,但在JavaScript中,这一切都是合成的 tl;博士回答 从其他OO语言(例如C++或java)到JavaScript可能会混淆。JavaScript与其他语言不同,它不是一种纯OO语言。特别是,在传统意义上,没有“类”纯声明被动地充当实例和子类的模板。作为一种解释语言(而不是编译语言,如C++和java),JavaScript是基于“原型”函数的;类/子类关系通过实例化实例的方式以及通过每个函数的
\uuuu proto\uuu
属性的原型引用“链”来模拟
尽管最近的JavaScript标准中添加了class
关键字,但它的实现是建立在先前存在的函数定义和原型链机制之上的。“子分类”可以通过在对函数调用new
之前设置函数的prototype
属性来实现。这将创建一个对象实例,其原型属性由原型属性的值定义
查找成员数据和方法时,如果不在当前实例中,则会在\uuuuu proto\uuuu
属性链中搜索该成员,直到找到该成员或到达链的末端
window.hasOwnProperty("Object"); // return true
window instanceof Object // return true