前端你需要了解的面向对象

面向对象

面向对象的三大特征:封装、继承、多态。

成员属性和方法,公开、私有、静态

公开:在外使用对象.属性或方法名,可以被自由的调用和继承

私有:对内不对外,使用对象.属性或方法名,无法被调用,但在类中的所有方法可以自由的访问它;也无法被继承

静态:静态属性和静态方法,是属于构造函数的,只能通过类名.属性或方法声明的,无法通过实例获取

在JavaScript中,私有属性和方法都是通过作用域模拟的,在ES2022中加入了#字段来表示私有属性和方法。

封装

因为对象需要对自己负责,对象的很多东西都不需要或者不可以暴露给外部。

所以,封装的主要作用是解决数据的安全性,内在也体现了“每个对象对自己负责”的原则。

方法的封装:就是将方法私有化,同时需要提供用于设置和读取的set/get方法,让外部使用我们提供的方法

属性的封装:属性私有化,同时需要提供用于设置和读取的set/get方法

继承

主要目的是为了解决代码的复用

实现代码的复用有两种方式:组合 和 继承

那么什么时候该用组合?什么时候该用继承呢?

多态

同一个操作,作用于不同的对象,会产生不同的结果。

即发出一个相同的指令后,不同的对象会对这个指令有不同的反应。

好处:灵活、解耦

耦合度:模块和模块之间,代码和代码之间的关联度

紧耦合就是它们之间的关联度大,代码很难维护,很容易出bug,而且出现一个bug,其他bug很可能像滚雪球一样增长,猝不及防。

多态性,要求我们面向接口编程。

TS 中我们可以定义一个方法不去实现,并且将这个方法置为抽象方法,当时我们的类也就必须为抽象类了,在前面添加 abstract 字段。然后让子类继承的时候去继承并实现这个方法(子类中也必须要包含这个抽象类中的抽象方法)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值