数组构造函数和数组实例的区别
数组构造函数和数组实例的区别
在这里我们需要区分一下什么是构造函数,什么是实例,什么是对象。
对象是什么?
面向对象编程(OOP):具有灵活性,代码可复用性,高度模块化等特点。
- 对象是单个实物的抽象。
- 对象是一个容器,封装了对应属性和方法。
- 属性是对象的状态,方法是对象的行为。
构造函数
创建一个新的
Function
对象。直接调用此构造函数可以动态创建函数。对象
String、Number、Boolean、Array、Object、Function 等等都是 JS 内置的构造函数。在 JS 中,由于一切皆接对象,所以它们也可以称为内置对象。
Array 和
Array.prototype
的区别Array 是 JS 内置的构造函数(内置对象),通俗地讲,它是创建数组的构造函数,它的本质是函数,所以它不是一个数组。
Array.prototype
是 Array 的一个属性,叫做原型,这个原型的值是一个对象,对象里面保存着数组对象的方法和属性。例如被数组构造函数 new 出来的新数组就被称为数组实例。
let arr = new Array();
这个 arr 上具有
Array.prototype
的所有方法。而
Array.form
,Array.of
,Array.isArray
是数组构造函数上的方法。而数组实例上的方法就有很多了,可以在控制台通过
arr.__proto
__或者Array.prototype
查看。