Javascript窗口对象的详细说明
首先看看我们的源代码。
复制代码如下:doctype HTML HTML Head Metacharset=' UTF-8 '/Title深刻理解JavaScript/Title Script Type=' text/JavaScript ' charset=' UTF-8 ' console . log(this);/script /head body h1深刻理解Javascript/h1 /body /html
我们知道,当通过浏览器打开这个页面时,脚本/script标签中包含的脚本将被执行。
然后我们来看看console.log(这个);这到底指的是谁?
我们在谷歌Chrome上看到了:
我们在Mozilla Firefox中看到了:
我们都看到输出窗口,那么这个窗口等于窗口吗?
然后我们的测试
复制的代码如下:脚本类型=' text/JavaScript ' charset=' utf-8 ' console . log(this);console.log('this==window '?这==窗口);/script
运行代码并输出这个==窗口?真,意思是Window==window,是真的吗?
为了了解它们之间的关系,我们继续进行测试
复制代码如下: script type=' text/JavaScript ' charset=' utf-8 ' console . log(' this=',this);console.log('this==window '?这个==window);console.log('window=',window);控制台.日志('窗口=',窗口)控制台.日志('窗口==窗口'?Window==Window)/脚本
看看浏览器输出:
谷歌Chrome :
Mozilla Firefox :
从输出中,我们可以推断出,
复制代码如下:指向窗口对象;这也等于窗口对象;窗口也指向窗口对象;Window指的是Window{},是浏览器提供的对象;窗口不等于窗口;
为什么会这样?
我们在浏览器控制台中查看窗口对象的结构;
原来的Window对象包含一些浏览器厂商实现的API,比如sessionStorage规范;在html5中;它还有一个window属性,这个属性值指向Window对象;我的理解:window对象是为浏览器厂商服务的,我们不能直接操作Window对象的属性,新增加的Window的API会在Window对象中体现出来;我们操作的窗口的属性将反映在窗口对象中。例如,定义一个全局变量window.a=' aaa
JavaScript的所有对象都存在于运行环境中,这也是一个对象,称为“顶层对象”。也就是说,JavaScript的所有对象都从属于“顶层对象”。不同的运行环境中有不同的“顶层对象”。在浏览器环境中,这个顶级对象是窗口对象。
所有浏览器环境的全局变量都是窗口对象的属性。
窗口可以理解为JavaScriptContext的上下文。
版权声明:Javascript窗口对象的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。