Global对象
Global
对象有很多属性,像 undefined
、NaN
和 Infinity
等特殊值都是 Global
对象的属性。此外,所有原生引用类型构造函数,比如 Object
和 Function
,也都是Global
对象的属性。下表列出了所有这些属性。
属性 | 说明 |
---|---|
undefined | 特殊值undefined |
NaN | 特殊值NaN |
Infinity | 特殊值Infinity |
Object | Object 的构造函数 |
Array | Array 的构造函数 |
Function | Function 的构造函数 |
Boolean | Boolean 的构造函数 |
String | String 的构造函数 |
Number | Number 的构造函数 |
Date | Date 的构造函数 |
RegExp | RegExp 的构造函数 |
Symbol | Symbol 的构造函数 |
Error | Error 的构造函数 |
EvalError | EvalError 的构造函数 |
RangeError | RangeError 的构造函数 |
ReferenceError | ReferenceError 的构造函数 |
SyntaxError | SyntaxError 的构造函数 |
TypeError | TypeError 的构造函数 |
URIError | URIError 的构造函数 |
一种获取Global
对象的方式是通过自执行函数返回 this
,如下所示
let global = (function () {
return this;
})();
这段代码创建一个立即调用的函数表达式,返回了 this
的值。当一个函数在没有明确(通过成为某个对象的方法,或者通过 call()
/apply()
)指定 this
值的情况下执行时,this
值等于 Global
对象。因此,调用一个简单返回 this
的函数是在任何执行上下文中获取 Global
对象的通用方式。
参考资料:《Javascript 高级程序设计》(第四版)
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=2963