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 相关文章推荐
js CSS操作方法集合
Oct 31 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
Jun 18 Javascript
jQuery Tools Dateinput使用介绍
Jul 14 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
js中document.write的那点事
Dec 12 Javascript
js去字符串前后空格的实现方法
Feb 26 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
Jul 27 Javascript
实例浅析js的this
Dec 11 Javascript
vue中使用localstorage来存储页面信息
Nov 04 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
Jun 14 Javascript
Javascript使用integrity属性进行安全验证
Nov 07 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
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
为你总结一些php系统类函数
2015/10/21 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
DOM 事件流详解
2015/01/20 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python调用命令行进度条的方法
2015/05/05 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Django CBV类的用法详解
2019/07/26 Python
一行python实现树形结构的方法
2019/08/09 Python
keras得到每层的系数方式
2020/06/15 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
质量管理标语
2014/06/12 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
浅谈Redis缓冲区机制
2022/06/05 Redis