深入理解Javascript window对象

首先看我们的源代码。

[html] view plaincopy

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>深入理解Javascript</title>
  6. <script type="text/javascript" charset="utf-8">
  7. console.log(this);
  8. </script>
  9. </head>
  10. <body>
  11. <h1>深入理解Javascript</h1>
  12. </body>
  13. </html>

我们知道,通过浏览器打开这个页面,包含在<script> </script>标签中的 脚本会被执行,

那我们看一下 console.log(this);  这个this 到底指向的是谁呢?

在Google Chrome 中我们看到:

在Mozilla Firefox 中我们看到:

我们都看到输出的Window,那这个Window 与window是不是相等呢?

接着我们的测试

[javascript] view plaincopy

  1. <script type="text/javascript" charset="utf-8">
  2. console.log(this);
  3. console.log(‘this == window ? ‘, this == window);
  4. </script>

运行代码,输出 this == window ?true ,这说明 Window == window,真的是这样吗?

为了搞清楚它们之间的关系,我们又接着测试

[javascript] view plaincopy

  1. <script type="text/javascript" charset="utf-8">
  2. console.log(‘this = ‘, this);
  3. console.log(‘this == window ?‘, this == window);
  4. console.log(‘window = ‘, window);
  5. console.log(‘Window = ‘, Window)
  6. console.log(‘Window == window ?‘, Window == window)
  7. </script>

看浏览器输出:

Google Chrome :


Mozilla Firefox  :

从输出结果我们可以推出,

this是指向Window对象;this也等于window对象;window也是指向Window对象;Window是指向Window{},是浏览器提供的对象;Window不等于window;

为什么会这样呢?

我们在浏览器控制台中查看Window对象的结构;

原来Window对象包含的一些浏览器厂商实现的API,比如 html5中 的规范 sessionStorage;
它还有一个window的属性,这个属性的值就是指向Window对象;
我的理解:Window对象 是为浏览器厂商服务的,我们不能直接操作Window对象的属性,Window新增的API会反映到 window 对象中;
我们操作window 的属性 会反映到Window 对象中。
比如 定义一个全局变量 window.a = ‘aaa‘;

JavaScript的所有对象都存在于一个运行环境之中,这个运行环境本身也是对象,称为“顶层对象”。这就是说,JavaScript的所有对象,都是“顶层对象”的下属。不同的运行环境有不同的“顶层对象”,在浏览器环境中,这个顶层对象就是window对象。

所有浏览器环境的全局变量,都是window对象的属性。

可以把window理解成JavaScript Context 上下文环境。

时间: 2024-10-26 23:40:42

深入理解Javascript window对象的相关文章

JavaScript Window 对象笔记

Window 对象 所有浏览器都支持 window 对象.它表示浏览器窗口. 所有 JavaScript 全局对象.函数以及变量均自动成为 window 对象的成员. 全局变量是 window 对象的属性. 全局函数是 window 对象的方法. 甚至 HTML DOM 的 document 也是 window 对象的属性之一: window.document.getElementById("header"); 与此相同: document.getElementById("h

JavaScript - window对象方法和事件

window对象方法和事件 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>window对象方法和事件</title> <script type="text/javascript"> /*alert(window.screen); alert(window.history);

javascript window 对象

JavaScript中的Window和window有什么关系? https://zhidao.baidu.com/question/1896482748628552420.html avascript中的Window 对象表示浏览器中打开的窗口.如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象.注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象.实际的window

javascript window对象属性和方法

window对象 window对象表示一个浏览器窗口或一个框架.在客户端JavaScript中,window对象是全局对象,所有的表达式 都在当前的环境中计算.也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性当作全局变量 来使用.例如,可以只写document,而不必写window.document. window对象属性 标红色的: 重要的 标黑色的: 正常不用  closed:   返回窗口是否已被关闭 defaultStatus:      设置或返回窗口状态栏中的默认文

JavaScript window对象

window对象 1.window对象是在客户端的整个HTML文档的根对象;代表当前的整个打开的浏览器窗口,因此其属性多用于操作浏览器的效果以及窗口有关的各种信息 2.window对象属性 a) defaultStatus默认状态条消息 b) status状态条消息 c) document当前显示的文档 d) location i.打开网站时需要使用完整的URL地址 ii.打开与当前文件在同一文件夹下的本地文件,可使用相对地址 iii.获取的时窗口所显示文档的完整URL(绝对路径);可更改win

JavaScript——Window对象

1.serTimeout()和setinterval()可用于注册在指定的时间之后单词或者重复调用的函数. 2.window对象的location属性引用的是Location对象,表示该窗口当前显示的文档的URL对象.Location对象的href属性是一个字符串,包含URL的完整版本.Location对象的assign()方法可以使窗口载入并显示指定URL的文档. 3.Window对象的history属性引用的是该窗口的History对象.History对象是用来把窗口的浏览历史用文档和文档状

一文带你彻底理解 JavaScript 原型对象

一.什么是原型 原型是Javascript中的继承的基础,JavaScript的继承就是基于原型的继承. 1.1 函数的原型对象 在JavaScript中,我们创建一个函数A(就是声明一个函数), 那么浏览器就会在内存中创建一个对象B,而且每个函数都默认会有一个属性 prototype 指向了这个对象( 即:prototype的属性的值是这个对象 ).这个对象B就是函数A的原型对象,简称函数的原型.这个原型对象B 默认会有一个属性 constructor 指向了这个函数A ( 意思就是说:con

理解javascript的对象

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body> <script type="text/javascript">var life = {}; for(life.age = 1; life.age <= 3; life.age++)

JavaScript window对象页面跳转

本页面跳转 window.location.href='' window.location.href='' 上一层页面跳转 HTML如果使用模板frameset, 实现单个子页面让所有页面跳转,可以用这个方法 window.parent.location.href='' 最外层的页面跳转 window.top.location.href='' 原文地址:https://www.cnblogs.com/Haidnor/p/12199059.html