内置对象有哪些?内置对象(函数对象)和普通对象区别

6/25/2020 Javascript

# 区别

内置对象概念:js 已经创建好了,你不用自己再创建的对象(免去 new 的步骤),直接就可以调用

  • 其他对象:FunctionArgumentsMathDateRegExpError
  • 数据封装类对象:ObjectArrayBooleanNumberString

重点

  • 这些都是函数对象,他们同时也被称为内置对象。函数对象本身其实就是一个纯函数,javascript 用他们来模拟类。

  • 普通对象就很简单了,就是我们常见的对象:

const obj = {
  name: 'Jioho',
  age: 22
}
1
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
  • 所以可以看见,obj1obj2、,obj3普通对象,他们都是 Object 的实例,而 func1func3Date 则都是 Function 的实例,称为函数对象。

  • 有几个特殊的 func2time。通过 new 关键字后,变成了 object 普通对象。原理可以看 new 一个对象的过程中发生了什么?

# 结论:

  • 只要是 Function 的实例,那就是函数对象,其余则为普通对象

我们从上面可以看出,一个对象是通过构造函数 new 出来的,这其实跟原型和原型链有很大的关系,那么原型和原型链到底是用来干嘛的呢?可以重温下:原型和原型链

Last Updated: 5/9/2021, 11:13:04 PM