内置对象有哪些?内置对象(函数对象)和普通对象区别
Jioho 6/25/2020 Javascript
# 区别
内置对象概念:js 已经创建好了,你不用自己再创建的对象(免去 new 的步骤),直接就可以调用
- 其他对象:
Function
、Arguments
、Math
、Date
、RegExp
、Error
- 数据封装类对象:
Object
、Array
、Boolean
、Number
和String
重点
这些都是
函数对象
,他们同时也被称为内置对象
。函数对象本身其实就是一个纯函数
,javascript 用他们来模拟类。普通对象就很简单了,就是我们常见的对象:
const obj = {
name: 'Jioho',
age: 22
}
1
2
3
4
2
3
4
- 理解函数对象非常重要,理解了这个才能理解 原型和原型链
# 在深入了解下:函数对象
和普通对象
const obj1 = {}
const obj2 = new Object()
function func1() {}
const obj3 = new func1()
const func2 = new (function() {})()
const func3 = new Function()
const time = new Date()
// 分别打印一下
console.log(typeof obj1) // object
console.log(typeof obj2) // object
console.log(typeof obj3) // object
console.log(typeof func1) // function
console.log(typeof func2) // object
console.log(typeof func3) // function
console.log(typeof time) // object
console.log(typeof Date) // function
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
所以可以看见,
obj1
、obj2
、,obj3
是普通对象
,他们都是Object 的实例
,而func1
、func3
、Date
则都是 Function 的实例,称为函数对象。有几个特殊的
func2
和time
。通过 new 关键字后,变成了object
普通对象。原理可以看 new 一个对象的过程中发生了什么?
# 结论:
- 只要是
Function
的实例,那就是函数对象
,其余则为普通对象
我们从上面可以看出,一个对象是通过构造函数 new 出来的,这其实跟原型和原型链有很大的关系,那么原型和原型链到底是用来干嘛的呢?可以重温下:原型和原型链