You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
classAcmen{constructor(name,age){this.name=name;this.age=age;}eat(){console.log(`${this.name} eat food`);}sleep(){console.log(`${this.name} go to bed`);}coding(){console.log(`${this.name} is ${this.age} years old and still happily coding`);}}letacmenJy=newAcmen('bigfairy-Jing',25);acmenJy.eat();// bigfairy-Jing eat foodacmenJy.sleep();// bigfairy-Jing go to bedacmenJy.coding();//bigfairy-Jing is 25 years old and still happily codingclassWebAcmenextendsAcmen{constructor(name,age,sex){super(name,age);this.sex=sex;}getSex(){console.log(this.sex);}peculiarity(){console.log('勤奋,努力,长得帅颜值高,任劳任怨');}}letacmenPyy=newWebAcmen('PengYuyan',18,'男');acmenPyy.getSex();//男acmenPyy.peculiarity();//勤奋,努力,长得帅颜值高,任劳任怨
appetizer
##1 面向对象
1.1什么是面向对象?(类,实例)
个人对js来说面向对象: 把具有 共性的事物,抽象成一个一个类,通过类可以创建一个一个的属性,方法进行代码编程. 所以说可以常用一句话**"类是对象事务的一个抽象,对象是类的具体表现"**;
编程方式: 面向过程(c js), 面向对象(c++ java js), 面向协议(Swift), 面向机器(汇编语言 面向处理器Processor)
js有两种开发模式:1.函数式(过程化),2.面向对象(OOP) js是一个弱面向对象语言
1.2 面向对象三要素(继承,封装,多态)
#####1.21 继承
代码演示
在这里WebAcmen 继承了父类Acmen,父类是公共的,不仅仅于服务某一个子类,前端代码封装时,可以将很多公用的方法抽离到一个父类中,提高复用性,比方说Acmen类定义了所有码农都会干的三件事。继承运用比较多的场景,如React。
1.22 封装
封装特点:减少耦合 不该外露的不外露,利于数据 接口的权限管理,在前端js很多代码中或者开源的库中,使用_代表默认的 private私有属性。
1.22 多态
代码演示
这里并非完全意义上的多态,只是做一个理解,保持子类的开放性和灵活性,面向接口编程,因为js是一层弱面向对象的语言,而且前端开发中使用多态不是很常见,所以这里只是做一个了解作用 (仅作了解)
##2 设计模式
2.1 五大设计原则 (solid)
single:做什么事都是分开,一块管一块。
一个程序只做好一件事,如果功能过于复杂就拆分开,每个部分保持独立。
open close:扩展开放 修改封闭。
增加新需求是,扩展新代码,而不是修改已有代码。是现今程序设计程序开发的终极目标。
Liskov :里氏替换原则 :里氏替换原则 认为“程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的”的概念。
子类能覆盖父类,父类能出现的地方子类就能出现,JS中使用较少。(弱类型,继承使用少)
Interface 接口独立原则 接口隔离原则(遗憾的是js是一门弱类型语言)。
保持接口的单一独立 ,避免出现 “胖接口”,js中没有接口(ts例外),但是web前端仍然使用较少。
Dependency Inversion依赖倒置原则: 依赖反转原则 认为一个方法应该遵从“依赖于抽象而不是一个实例” 的概念。依赖注入是该原则的一种实现方式。
面向接口编程 依赖于抽象而不是依赖于具体,使用方只关注接口而不关注具体类的实现。js中使用较少(没有接口&弱类型),web前端使用较少。
代码示例
这里遵循了的设计原则:
单一职责原则:每个then逻辑值做好一件事,开放封闭原则:如果新增需求了,那就扩展then,这里就是扩展开发,修改封闭。
2.2 职责链模式
2.3 观察者模式
网页事件绑定 点击一个按钮促发多个事件 。
node stream 自定义事件。
promise, 所有的事件监听模式,都是使用了观察者模式。如前方的图片监听加载。
nodejs 中:处理http请求, 多进程通信.
vue和react组件生命周期触发。
下一节会讲到,单例模式,装饰器模式,发布订阅模式 以及发布订阅模式与观察者模式对比.
!important 必须刻意去训练 ----> 刻意训练 ----> 刻意训练 ----> 刻意训练。
The text was updated successfully, but these errors were encountered: