JavaScript中的全局对象介绍


Posted in Javascript onJanuary 01, 2015

对于任何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
Javascript 相关文章推荐
用javascript来实现动画导航效果的代码
Dec 16 Javascript
JS控制文本框textarea输入字数限制的方法
Jun 17 Javascript
javascript if条件判断方法小结
May 17 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
Jun 05 Javascript
跟我学习javascript的arguments对象
Nov 16 Javascript
如何判断Javascript对象是否存在的简单实例
May 18 Javascript
ionic2懒加载配置详解
Sep 01 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
JS实现图片切换特效
Dec 23 Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 Javascript
pnpm对npm及yarn降维打击详解
Aug 05 Javascript
原生javascript获取元素样式
Dec 31 #Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 #Javascript
jQuery中:last-child选择器用法实例
Dec 31 #Javascript
jQuery中:nth-child选择器用法实例
Dec 31 #Javascript
jQuery中:first-child选择器用法实例
Dec 31 #Javascript
jQuery中复合属性选择器用法实例
Dec 31 #Javascript
javascript实现左右控制无缝滚动
Dec 31 #Javascript
You might like
献给php初学者(入门学习经验谈)
2010/10/12 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
js版本A*寻路算法
2006/12/22 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
Vue如何获取数据列表展示
2019/12/11 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
Python通过future处理并发问题
2017/10/17 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
pandas取出重复数据的方法
2019/07/04 Python
Python内存管理实例分析
2019/07/10 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
jupyter notebook实现显示行号
2020/04/13 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
利用python 读写csv文件
2020/09/10 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
方正Java笔试题
2014/07/03 面试题
自我评价个人范文
2013/12/16 职场文书
民间借贷协议书范本
2014/10/01 职场文书
锅炉工岗位职责
2015/02/13 职场文书
小学运动会报道稿
2015/07/22 职场文书
医生行业员工的辞职信
2019/06/24 职场文书