首先看看我们的源代码。

复制代码代码如下所示:









对Javascript的深刻理解



console.log(本);







对Javascript的深刻理解







我们知道页面是通过浏览器打开的,标签中包含的脚本将被执行。

让我们看一看在console.log(本);而做这一点吗

在谷歌浏览器我们看到:



在Mozilla Firefox中,我们看到:



我们都看到了输出窗口,这个窗口等于窗口吗

然后我们的测试

复制代码代码如下所示:



console.log(本);

console.log(= =这窗口,窗口);





操作码,这个窗口的输出是真的,窗口=窗口,是真的吗



为了弄清他们之间的关系,我们继续进行测试。

复制代码代码如下所示:



console.log(=,这);

console.log(= =这窗口,窗口);

console.log(=窗口);

console.log(=窗口)

console.log(=窗口,窗口,窗口)





查看浏览器输出:

谷歌浏览器:




Mozilla的火狐:






从输出结果我们可以启动,

复制代码代码如下所示:

这是指向窗口对象的;

这也等于窗口对象;

窗口还指向窗口对象;

窗口指向窗口{ },由浏览器提供的对象;

窗口不等于窗口;





为什么会这样

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






原来的窗口对象包含API的一些浏览器厂商,如HTML5规范sessionStorage;

它还有一个窗口属性,它指向窗口对象。

我的理解是:窗口对象是针对浏览器制造商的,我们不能直接操纵窗口对象的属性,窗口的新API将反映在窗口对象中。

我们在窗口上操作的属性将反映在窗口对象中。

例如,一个全局变量定义窗口为'AAA';

Javascript中的所有对象都存在于一个正在运行的环境中,这也是一个称为顶层对象的对象,也就是说,Javascript的所有对象都是顶层对象的下属,不同的运行时环境具有不同的顶级对象,而在浏览器环境中,top对象是窗口对象。

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

窗口可以被理解为一个javascriptcontext语境。