javascript中window对象和Object对象的关系是什么?

javascript中window对象和Object对象的关系是什么?

阅读 7.3k
6 个回答

window 是内置的全局 Object,window 是 Object 创造出来的,通过原型链的方式继承了 Object 的属性和方法

我理解楼主是对 window 对象理解的不够深入吧。

浏览器对象层次结构的顶部就是 window 对象。它代表什么呢?就是一个浏览器窗口。
一个用户可以在浏览器内部打开多个窗口,其中每个窗口都是一个独立的 window 对象,它们可能会加载不同的 url,即使同样的 url 地址,它们也是相互独立的。

换种说法, window 对象是浏览器 DOM 中所有对象的父对象,父对象也是对象,因此 window 对象的祖宗也是 Object

非要说有什么关系的话。。。window 对象的原型链上游有 Object.prototype。

window instanceof Object;  // true
>typeof(window)
"object"

就这个关系吧.

window是浏览器里的顶级对象,暴露给开发者用于操作浏览器行为的对象。
javascript中的Object是ECMAScript语言规范中的数据类型;

要说这俩者的关系,那就是各个浏览器制造团队(谷歌)在开发的浏览器(chrome)里实现BOM(浏览器对象模型)的时候创造了window对象,并且这个对象是ECMAScript语言规范中的数据类型Object类型的一个实例。

感觉这是底层代码的问题,为啥?请看我的发现:
image.png
首先我们得知window对象的构造函数(Window大写开头)的原型链以Object原型为头
然而:
image.png
所以我可以知道Object构造函数来自window对象
window对象的直接方法,不是原型上的。
image.png
同时window对象的原型又是再Object原型为头的原型链上!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题