首先看看我们的源代码。
复制代码代码如下所示:
对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语境。