JavaScript中的全局对象介绍
作者:junjie 时间:2024-04-22 22:41:29
对于任何JavaScript程序,当程序开始运行时,JavaScript解释器都会初始化一个全局对象以供程序使用。这个JavaScript自身提供的全局对象的功能包括:
1.全局对象拥有一些常用的属性值。比如undefined、Infinity以及NaN。
2.全局对象拥有一些常用的属性对象。比如Math、JSON和Number对象均为该全局对象的属性。
3.全局对象提供一些全局函数供调用。比如isNaN()、isFinite()、parseInt()和eval()等。
4.全局对象提供一些全局构造器(constructor),也即全局类。比如Date()、RegExp()、String()、Object()和Array()等。
除了JS全局对象,对于运行在浏览器端的JavaScript程序,还有另一个全局对象:window。window全局对象提供了与当前窗口、页面有关的诸多属性与方法。除了这些与浏览器有关的全局属性和方法,window对象还封装了JS全局对象,并向外暴露JS全局对象的属性与接口;因此,当进行浏览器端JavaScript编程时,只需关心window全局对象即可。
对于JavaScript程序中的this,如果this不属于任何function,那么这个this就指代JS全局对象;如果是浏览器端运行的JS程序,那么这个this就指代window全局对象。
如果这个this属于某个function,那么this指代的就是调用该function的对象。若这种情况下function只是一个普通的函数,而不是某个类的方法,那么this的指代存在两种可能:
1.在ECMAScript 3标准,以及ECMAScript 5标准的非严格模式下,this指代全局对象。
2.在ECMAScript 5标准的严格模式下,this指代undefined。
根据这一特性,可以使用以下代码来判断当前是否处于严格模式:
var strict = (function(){return !this;}());
如果在JavaScript程序中创建了全局变量,那么这个全局变量会成为全局对象中的一个属性。
实验
var a = this;
console.log(a);//window object
console.log(a.outerWidth);//access window object's attribute
console.log(a.isNaN);//access JS global object's attribute
x = "test";
console.log(a.x);//access newly created global variable value
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python实现扫描局域网活动ip(扫描在线电脑)
Python3读取zip文件信息的方法
ASP.NET与数据库相关技巧
浅析MySQL数据库授权原则
itchat接口使用示例
使用jQuery简化Ajax开发
详解使用vue脚手架工具搭建vue-webpack项目
![](https://img.aspxhome.com/file/2023/3/123933_0s.png)
PHP 修改SESSION的生存时间案例详解
![](https://img.aspxhome.com/file/2023/0/55540_0s.png)
利用scrapy将爬到的数据保存到mysql(防止重复)
![](https://img.aspxhome.com/file/2023/6/79696_0s.jpg)
String 的扩展方法
IE6下图片下方有空隙的解决方法
网站登录持久化Cookie方案
JS控制输入框内字符串长度
关于textarea的直观换行
Python 如何创建一个简单的REST接口
Python数据可视化 pyecharts实现各种统计图表过程详解
![](https://img.aspxhome.com/file/2023/4/82634_0s.png)
python基于C/S模式实现聊天室功能
![](https://img.aspxhome.com/file/2023/3/107833_0s.jpg)
Python3实现并发检验代理池地址的方法
Python文件操作和数据格式详解(简单简洁)
![](https://img.aspxhome.com/file/2023/9/99249_0s.png)
golang协程与线程区别简要介绍
![](https://img.aspxhome.com/file/2023/1/105141_0s.png)