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 相关文章推荐
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
jquery 操作两个select实现值之间的互相传递
Mar 07 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
Oct 29 Javascript
javascript基本类型详解
Nov 28 Javascript
javascript面向对象之对象的深入理解
Jan 13 Javascript
javascript实现给定半径求出圆的面积
Jun 26 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
Bootstrap开发实战之响应式轮播图
Jun 02 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 Javascript
JavaScript中清空数组的方法总结
Dec 02 Javascript
JS 60秒后重新发送验证码的实例讲解
Jul 26 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查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
python实现图片批量剪切示例
2014/03/25 Python
Python通过paramiko远程下载Linux服务器上的文件实例
2018/12/27 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
上海微创软件面试题
2012/06/14 面试题
一名毕业生的自我鉴定
2013/12/04 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
保密普查工作实施方案
2014/02/25 职场文书
会计自荐信范文
2014/03/09 职场文书
Python基础知识之变量的详解
2021/04/14 Python