关于js的全局对象
来源:互联网 发布:2017pta编程题答案 编辑:程序博客网 时间:2024/04/26 07:55
全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。全局对象不是任何对象的属性,所以它没有名称。
在顶层 JavaScript 代码中,可以用关键字 this 引用全局对象。但通常不必用这种方式引用全局对象,因为全局对象是作用域链的头,这意味着所有非限定性的变量和函数名都会作为该对象的属性来查询。例如,当JavaScript 代码引用 parseInt() 函数时,它引用的是全局对象的 parseInt 属性。全局对象是作用域链的头,还意味着在顶层 JavaScript 代码中声明的所有变量都将成为全局对象的属性。
全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。
在 JavaScript 代码嵌入一个特殊环境中时,全局对象通常具有环境特定的属性。实际上,ECMAScript 标准没有规定全局对象的类型,JavaScript 的实现或嵌入的 JavaScript 都可以把任意类型的对象作为全局对象,只要该对象定义了这里列出的基本属性和函数。例如,在允许通过 LiveConnect 或相关的技术来脚本化 Java 的 JavaScript 实现中,全局对象被赋予了这里列出的 java 和 Package 属性以及 getClass() 方法。而在客户端 JavaScript 中,全局对象就是 Window 对象,表示允许 JavaScript 代码的 Web 浏览器窗口。
当js解释器启动时(或浏览器加载新页面),它将创建一个新的全局对象,并给它一组定义的初始属性:
全局属性,比如undefined,Infinity,NaN
全局函数,比如isNaN(),parseInt(),eval()
构造函数,比如Date(),RegExp(),String(),Object(),Array()
全局对象,比如Math和JSON
因为全局对象的预定义属性是不可枚举的,所以用 for/in 循环列出的是所有隐式或显式声明的全局变量(window对象的),像parseInt()等是没有的:
var variables = "";for (var name in this) {variables += name + "<br />";}document.write(variables);
我的chrome浏览器结果:
topwindowlocationexternalchromedocumentvariablesspeechSynthesiswebkitNotificationslocalStoragesessionStorageapplicationCachewebkitStorageInfoindexedDBwebkitIndexedDBcryptoCSSperformanceconsoledevicePixelRatiostyleMediaparentopenerframesselfdefaultstatusdefaultStatusstatusnamelengthclosedpageYOffsetpageXOffsetscrollYscrollXscreenTopscreenLeftscreenYscreenXinnerWidthinnerHeightouterWidthouterHeightoffscreenBufferingframeElementclientInformationnavigatortoolbarstatusbarscrollbarspersonalbarmenubarlocationbarhistoryscreenpostMessagecloseblurfocusondeviceorientationondevicemotiononunloadonstorageonpopstateonpageshowonpagehideononlineonofflineonmessageonhashchangeonbeforeunloadonwaitingonvolumechangeontimeupdateonsuspendonsubmitonstalledonshowonselectonseekingonseekedonscrollonresizeonresetonratechangeonprogressonplayingonplayonpauseonmousewheelonmouseuponmouseoveronmouseoutonmousemoveonmouseleaveonmouseenteronmousedownonloadstartonloadedmetadataonloadeddataonloadonkeyuponkeypressonkeydownoninvalidoninputonfocusonerroronendedonemptiedondurationchangeondropondragstartondragoverondragleaveondragenterondragendondragondblclickoncuechangeoncontextmenuoncloseonclickonchangeoncanplaythroughoncanplayoncancelonbluronabortonwheelonwebkittransitionendonwebkitanimationstartonwebkitanimationiterationonwebkitanimationendontransitionendonsearchgetSelectionprintstopopenshowModalDialogalertconfirmpromptfindscrollByscrollToscrollmoveBymoveToresizeByresizeTomatchMediagetComputedStylegetMatchedCSSRuleswebkitConvertPointFromPageToNodewebkitConvertPointFromNodeToPagerequestAnimationFramecancelAnimationFramewebkitRequestAnimationFramewebkitCancelAnimationFramewebkitCancelRequestAnimationFramecaptureEventsreleaseEventsatobbtoasetTimeoutclearTimeoutsetIntervalclearIntervalTEMPORARYPERSISTENTwebkitRequestFileSystemwebkitResolveLocalFileSystemURLopenDatabaseaddEventListenerremoveEventListenerdispatchEvent
- 关于js的全局对象
- 关于全局对象的作用
- Node.js 的Process全局对象
- Node.js的全局对象和全局变量
- Node.js 的 Global全局对象
- Node.js的全局对象和全局变量
- Node.js 全局对象
- Node.js 全局对象
- Node.js全局对象
- Node.js全局对象
- Node.js全局对象
- Node.js 全局对象
- Node.js 全局对象
- Node.js 全局对象
- JS中的全局对象
- Node.js 全局对象
- Node.js 全局对象
- Node.js全局对象
- JQuery中$.ajax()方法参数详解
- alpha版、beta版、rc版的意思
- MVC3 上传文件
- Json lib 对于hibernate的懒加载的存在问题的解决方法
- 各个浏览器同一时间对同一域名下的请求的数量限制
- 关于js的全局对象
- STM32 定时器浅谈_1
- Java设计模式研究之策略模式
- UVA11987- Almost Union-Find
- struts2+jqury ajax问题汇总与解决办法
- 3.线性表的应用-一元多项式的计算
- C#中如何获取字体类型,颜色,和大小.
- 异常:System.IO.FileNotFoundException: 未能加载文件或程序集“Microsoft.mshtml
- ios申请真机调试( xcode 5)详细解析