javascript 中的 class

所属分类:HtmlCssJs | 浏览:16 | 发布于 2025-11-30

对前端知识一直都是一知半解,现在重新学习,只学要用到的内容,这篇是javascript中的类。

ES 5 中定义类:

function Rabbit() { }

ES 6 中定义类:

class Rabbit { }

类和对象之间的关系:

class Rabbit { }
const r1 = new Rabbit();

类和对象之间是通过原型关联起来的,原型的出现是为了实现面向对象,避免类型丢失。具体来说就是对象的隐式原型__proto__ 等于 类的 prototype:

 

r1.__proto__ === Rabbit.prototype   // true

面向对象要求所有的对象都必须属于一个类

const obj = {}

看一下原型关系

obj.__proto__ === Object.prototype  // true

可以把 const obj = {} 理解为下面的简写:

const obj = new Object()

但是Js又不是一个严格的面向对象的语言

const obj2 = Object.create(null) //undefined
obj2.__proto // undefined

obj2没有隐式原型,是因为Js不是一个严格的面向对象的语言。

一般的面向对象语言,一个兔子类的对象一旦创建,它就永远属于兔子类,但是在Js中,可以通过改变兔子的对象的__proto__来让它变成一个苹果的对象。真是神奇噢

 

类的本质就是用来描述具有相同特征的对象,它描述的是这些对象的相同特征。

兔子的特征有什么?毛发、颜色、体重、身高、年龄、吃、睡、跳等等。

兔子的这些特征我们在类中描述,而不是在对象中描述,面向对象他认为某一个对象的特征分为两大类,一类是属性,一类是方法。属性是名词,方法是动词,在Js里面表现为函数。

 

对象的特征到底什么时候描述呢,面向对象认为,我们在类中有两个时间节点,可以来进行具体的描述。第一个时间节点是对象创建时,第二个时间节点是动作产生时。一个类的不同对象都拥有相同的特征,但是会有不同的特征值。

 

 

海涛贝塔(https://haitaobeta.com)属于海涛个人博客,欢迎浏览使用

联系方式:qq:52292959 邮箱:52292959@qq.com

备案号:粤ICP备18108585号 友情链接