fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

[js] 第184天 说下你对面向对象的理解

Open haizhilin2013 opened this issue 5 years ago • 8 comments

第184天 说下你对面向对象的理解

haizhilin2013 avatar Oct 16 '19 20:10 haizhilin2013

当我需要对象的时候就new一个

ghost avatar Oct 17 '19 08:10 ghost

组件也算是面向对象的一种用法吧。 万事万物皆可抽象,有特定的出入参,可嵌套,可继承, 对象内的数据和事务较为独立,是很棒的一种开发习惯。

哪怕你把所有数据和事务都丢进单独的 Object 中其实也阔以, 只是初始数据和私有变量可能还需要再搞搞而已。

forever-z-133 avatar Oct 17 '19 08:10 forever-z-133

每个对象能够接收消息,处理数据和发送消息给其他对象。每个对象都可以被看作是一个拥有清晰角色或责任的独立小机器。

testplm avatar Oct 17 '19 12:10 testplm

一切皆对象。

liugezhou avatar Oct 17 '19 13:10 liugezhou

说点边缘的,现在普遍的观点是在组件化的东西其实并不推荐用面向对象(Class)来做,就如React也推出了hooks,其实extends/implements这些OO的东西并不适用与前端组件化的编程,就像Vue3,也是用函数表示组件,而非很早之前传言的Class。面向对象更适合后端的业务,而非Web前端的UI编程,前端更适合用函数式的编程方式。(小白的一点愚见,欢迎指教,轻喷~)

vkboo avatar Oct 17 '19 14:10 vkboo

嗯嗯,很值得深究的观点, 在我看来,框架选用函数式组件等于丢弃了 mounted 这些复杂的东西,对框架是很好的,可以更侧重于数据与识图的关系。但业务逻辑上,没有 created 后就得靠我们自己来管理何时异步请求了。 (小白言论,最新技术懂得不多,可能已经有了解决方案,欢迎指教~)

forever-z-133 avatar Oct 17 '19 14:10 forever-z-133

说说我的理解吧:面向对象思想,就是将万事万物中具有相关的属性,相关的方法的东西,归纳成一个类。

当我们想做某一件事情的时候,先找到能解决这件事情的一个类,然后创建这个类的一个实例,用实例去完成这件事情。

由于一个类中的属性和方法联系非常紧密,并且与另一个类中的属性和方法并不相关,所以能够实现高内聚,低耦合的目的。

mengsixing avatar Oct 17 '19 15:10 mengsixing

面向对象有四大特征: 抽象、封装、继承、多态。 可以理解为是把事物抽象为一种类型,这种类型有自己的属性和方法,把复杂的事情简化为一个个方法和属性,我们不用关心内部代码的实现,只需要调用即可。JS中万物皆对象,需要解决什么问题,就将什么问题抽象对象,通过对象的方法来解决问题。

xiaoqiangz avatar Aug 09 '22 03:08 xiaoqiangz