龙空技术网

为什么说Object是js中的基类

上班撸码 160

前言:

如今姐妹们对“js中的object”大约比较注重,我们都需要学习一些“js中的object”的相关知识。那么小编也在网络上网罗了一些对于“js中的object””的相关资讯,希望兄弟们能喜欢,朋友们快快来了解一下吧!

在js中有很多的类型,有对象(Object)、数组(Array)、日期(Date)、正则,在es6中也新增了一些类,Promise、Map、Set等,但是我们经常看到一些资料中介绍Object是所有类型的基类,尤其是数组,感觉和对象是完全不同的类型,那这个基类到底是什么意思呢?下面来看看js中的继承。

通常我们创建一个js的对象有2种方式:对象字面量或者调用Object构造函数。

var a = {};var b = new Object();console.log(typeof a);console.log(typeof b);

输出结果可想而知:Object、Object。

我们创建一个数组也有两种方式:

var x = [1,2,3];var y = new Array(1,2,3);console.log(typeof x);console.log(typeof y);

输出结果也是:Object、Object。明明是数组为什么类型为Object呢。

我们在创建一个Pomise实例看看:

var z = new Promise(function(resolve,reject){ console.log('创建了一个promise实例')})console.log(typeof z);

结果仍然是Object。

其实我们说Object是所有类型的基类的原因就用到了我们前面讲过的原型链和构造函数。比如说我们创建了一个数组a,数组a的原型指向Arrsy.prototype,而数组a的原型Arrsy.prototype又必然是一个Object类型的,然后这个对象原型指向Object.prototype,根据原型链的关系,数组a可以调用Object.prototype上的属性和方法。所以说Object是所有类型的基类。

标签: #js中的object