本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.3节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 JavaScript原生/内置对象构造函数
JavaScript语言包含9个原生(或内置)对象构造函数。JavaScript使用这些对象来构建JavaScript语言。“构建”的意思是指,这些对象是用于表达JavaScript代码中的对象值,以及协调语言中的多个特性。因此,原生对象构造函数是多方面的,它们生成对象,但也被用于促进语言的编程约定的形成。例如,函数是Function()构造函数创建的对象,但作为构造函数,使用new关键字调用后,它们也可用于创建其他对象。
下面列出了JavaScript预包装的9个原生对象构造函数:
- Number()
- String()
- Boolean()
- Object()
- Array()
- Function()
- Date()
- RegExp()
- Error()
JavaScript主要是由这9个对象(以及字符串、数字和布尔原始值)来创建的。深入理解这些对象,对充分利用JavaScript独特的编程力量和语言灵活性是非常关键的。
注意
- Math对象在这里是很古怪的。它是一个静态对象,而不是构造函数,也就是说,我们不能这么做:var x = new Math()。但我们可以使用它,就好像它已经实例化好了一样(如Math.PI)。实际上,Math只是一个由JavaScript设置的对象命名空间,用于存储数学函数。
- 原生对象有时也被称为“全局对象”,因为它们是JavaScript中原生就可以使用的对象。不要混淆的术语是拥有"head"全局对象的global object(全局对象),它是作用域链中的最高层级。例如,所有Web浏览器中都有的window对象。
- Number()、String()和Boolean()构造函数不仅能够构建对象,而且能为字符串、数字和布尔值提供原始值,这取决于如何充分利用构造函数。如果直接调用这些构造函数,那么就会返回一个复杂对象。如果只是简单地在代码中表示一个数字、字符串或布尔值(5、“foo”和true等原始值),那么构造函数将返回一个原始值,而不是一个复杂的对象值。