js中常常说一句话就是一切皆是对象,那么在js中有哪些对象呢,从其来源可以分为:
- ECMAScript提供的对象,这种对象与代码运行的环境无关,这种对象如果需要new实例化就是原生对象,不需要new实例化的就是内置对象
- 运行环境提供的对象,称为宿主对象,前端js的宿主主要就是浏览器,所以也称为浏览器对象,这里面包括dom,bom,XMLHttpRequest…
- 用户自定义的对象
javascript是怎么把这么多种类的对象结合起来的呢,那就是宿主浏览器提供的window 对象,就像地球承载着地球上的所有事物一样,一个窗口就是一个世界,一个世界有一个window对象承载着js的所有对象。任何的操作都涉及window对象或者其子对象的属性/方法,window对象就代表浏览器窗口。实际上对于网页的任何操作都是通过window对象来完成的。
Window 对象
有一个浏览器窗口就有一个window对象,window对象就代表浏览器窗口。Window 对象有很多属性和方法,有些属性本身就是一个对象:

- document 对象,浏览器载入的 HTML 文档, 将会被解析成 Document 对象,是dom的一部分
- frames 对象 类数组对象,返回窗口中所有命名的框架,是bom的一部分
- history 对象 包含用户(在浏览器窗口中)访问过的 URL,是bom的一部分
- location 对象 包含有关当前 URL 的信息,是bom的一部分
- navigator 对象 包含有关浏览器的信息,是bom的一部分
- screen 对象 包含有关客户端显示屏幕的信息,是bom的一部分
PS:window对象的子对象不止这些,比如子对象XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,实际上我们后面的大部分内容都是宿主对象提供的api让js通过浏览器实现各种各样的功能。
总之不管是你自定义的变量或者,还是引入的第三方插件,他们一定被包含在window对象的范围内的。
window对象的属性和方法
| 属性 | 描述 |
|---|---|
| closed | 返回窗口是否已被关闭。 |
| defaultStatus | 设置或返回窗口状态栏中的默认文本。 |
| document | 对 Document 对象的只读引用。(请参阅对象) |
| frames | 返回窗口中所有命名的框架。该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架。 |
| history | 对 History 对象的只读引用。请参数 History 对象。 |
| innerHeight | 返回窗口的文档显示区的高度。 |
| innerWidth | 返回窗口的文档显示区的宽度。 |
| localStorage | 在浏览器中存储 key/value 对。没有过期时间。 |
| length | 设置或返回窗口中的框架数量。 |
| location | 用于窗口或框架的 Location 对象。请参阅 Location 对象。 |
| name | 设置或返回窗口的名称。 |
| navigator | 对 Navigator 对象的只读引用。请参数 Navigator 对象。 |
| opener | 返回对创建此窗口的窗口的引用。当窗口是用javascript打开时,指向打开它的那人窗口(开启者) |
| outerHeight | 返回窗口的外部高度,包含工具条与滚动条。 |
| outerWidth | 返回窗口的外部宽度,包含工具条与滚动条。 |
| pageXOffset | 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 |
| pageYOffset | 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 |
| parent | 返回父窗口。如果当前窗口为frame,指向包含该frame的窗口的frame (frame) |
| screen | 对 Screen 对象的只读引用。 |
| screenLeft | 返回相对于屏幕窗口的x坐标 |
| screenTop | 返回相对于屏幕窗口的y坐标 |
| screenX | 返回相对于屏幕窗口的x坐标 |
| sessionStorage | 在浏览器中存储 key/value 对。 在关闭窗口或标签页之后将会删除这些数据。 |
| screenY | 返回相对于屏幕窗口的y坐标 |
| self | 返回对当前窗口的引用。等价于 Window 属性。 |
| status | 设置窗口状态栏的文本。 |
| top | 返回最顶层的父窗口。如果当前窗口为frame,指向包含该frame的top-level的window对象 |
| 方法 | 描述 |
|---|---|
| alert() | 弹出一个带有一段消息和确认按钮的窗体 |
| blur() | 把键盘焦点从顶层窗口移开 |
| clearInterval() | 取消由setInterval()设置的timeout |
| clearTimeout() | 取消有setTimeout()方法设置的timeout |
| close() | 关闭浏览器窗口 |
| confirm() | 显示带有一段消息以及确认按钮盒取消按钮的对话框 |
| focus() | 把键盘焦点给予一个窗口 |
| moveBy() | 可相对窗口的当前坐标移动指定的像素 |
| moveTo() | 把窗口的左上角移动到一个指定的坐标 |
| open() | 打开一个新的浏览器窗体 |
| prompt() | 显示可提示用户输入的对话框 |
| resizeBy() | 按照指定的像素调整窗口的大小 |
| resizeTo() | 把窗体的大小调整到指定的宽度和高度 |
| scrollBy() | 按照指定的像素值来滚动内容 |
| scrollTo() | 把内容滚动到指定的坐标 |
| setInterval() | 按照指定的周期(毫秒)来调用函数或计算表达式 |
| setTimeout() | 在指定的毫秒数后调用函数或表达式 |

本文介绍了JavaScript中对象的来源,包括ECMAScript提供的对象、运行环境提供的宿主对象和用户自定义对象。重点阐述了宿主浏览器提供的window对象,它承载着js的所有对象,代表浏览器窗口。还列举了window对象的部分属性,如document、frames等对象,强调网页操作多通过window对象完成。

1591

被折叠的 条评论
为什么被折叠?



