javascript基础学习系列六十五: Global 对象属性

本文详细解释了JavaScript中的Global对象,包括其特殊值(undefined、NaN、Infinity),原生构造函数(如Object、Function等),以及window对象作为Global对象的代理。还介绍了如何通过`this`和立即调用函数表达式获取Global对象的方法。
摘要由CSDN通过智能技术生成

Global 对象有很多属性,其中一些前面已经提到过了。像 undefined、NaN 和 Infinity 等特殊
值都是 Global 对象的属性。此外,所有原生引用类型构造函数,比如 Object 和 Function,也都是 Global 对象的属性。

undefined NaN Infinity Object Array Function Boolean String
特殊值 undefined 特殊值 NaN
特殊值 Infinity Object 的构造函数 Array 的构造函数 Function 的构造函数 Boolean 的构造函数 String 的构造函数
Number
Date
RegExp
Symbol
Error EvalError RangeError ReferenceError SyntaxError TypeError URIError

Number 的构造函数
Date 的构造函数
RegExp 的构造函数
Symbol 的伪构造函数
Error 的构造函数 3 EvalError 的构造函数
 RangeError 的构造函数 ReferenceError 的构造函数 SyntaxError 的构造函数 TypeError 的构造函数 URIError 的构造函数

1. window 对象:

虽然 ECMA-262 没有规定直接访问 Global 对象的方式,但浏览器将 window 对象实现为 Global 对象的代理。因此,所有全局作用域中声明的变量和函数都变成了 window 的属性。来看下面的例子:

var color = "red";
function sayColor() {
  console.log(window.color);
}
window.sayColor(); // "red"

这里定义了一个名为 color 的全局变量和一个名为 sayColor()的全局函数。在 sayColor()内部, 通过 window.color 访问了 color 变量,说明全局变量变成了 window 的属性。接着,又通过 window 对象直接调用了 window.sayColor()函数,从而输出字符串。

另一种获取 Global 对象的方式是使用如下的代码:

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

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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值