Global对象

Global 对象有很多属性,像 undefinedNaNInfinity 等特殊值都是 Global 对象的属性。此外,所有原生引用类型构造函数,比如 ObjectFunction,也都是Global对象的属性。下表列出了所有这些属性。

属性说明
undefined特殊值undefined
NaN特殊值NaN
Infinity特殊值Infinity
ObjectObject 的构造函数
ArrayArray 的构造函数
FunctionFunction 的构造函数
BooleanBoolean 的构造函数
StringString 的构造函数
NumberNumber 的构造函数
DateDate 的构造函数
RegExpRegExp 的构造函数
SymbolSymbol 的构造函数
ErrorError 的构造函数
EvalErrorEvalError 的构造函数
RangeErrorRangeError 的构造函数
ReferenceErrorReferenceError 的构造函数
SyntaxErrorSyntaxError 的构造函数
TypeErrorTypeError 的构造函数
URIErrorURIError 的构造函数

一种获取Global对象的方式是通过自执行函数返回 this,如下所示

let global = (function () {
  return this;
})();

这段代码创建一个立即调用的函数表达式,返回了 this 的值。当一个函数在没有明确(通过成为某个对象的方法,或者通过 call()/apply())指定 this 值的情况下执行时,this 值等于 Global 对象。因此,调用一个简单返回 this 的函数是在任何执行上下文中获取 Global 对象的通用方式。

参考资料:《Javascript 高级程序设计》(第四版)

如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注