跟面向对象卯上了,看看ES6的“类”

news/2024/7/1 13:50:33

  上回我们说到ES5的面向对象,以及被大家公认的最佳的寄生组合式继承。时代在进步,在ES6中对于面向对象这个大boss理所应当地进行了一次大改,从原先那种比较长的写法转变为“小清新”写法。我们一起来看一下。

  在ES6中是有类这个概念,而且是堂而皇之地有了。

  我们来看一串代码:

  

 1 class Dad {
 2     constructor(name="无姓名",age=0){
 3         this.name=name;
 4         this.age=age;
 5     }
 6 
 7     surface(){
 8         console.log(this.name,this.age);
 9     }
10 }
11 
12 class Sons extends Dad {
13     constructor(name,age){
14         super(name,age);
15     }
16 }
17 
18 const son1=new Sons("张花花",16);
19 son1.surface();

  其实我们用的依然是上回说的那个例子,在ES6中,用extends来实现对父类的继承,同时在构造器中调用super方法实现子类给父类传参,这里我们传入张花花这个妹子作为参数,果然成功地调用到了父类的surface方法。注意,这里在类中定义的这个方法,其实本质上就是构造函数Dad的prototype里面的方法。

  当我说到这里时,也许小伙伴们会有少许震惊吧,exo me?Dad不是类吗,怎么变方法了。我们在控制台中测一测:

  

  哇!多么恐怖,真的就是个function,其实ES6中类的概念只不过是对ES5中相关概念的包装,说得好听一点就是对语法糖的抽象,只是看起来确实更加简单了。对于上面这个例子,我们继承了父类的surface方法,也可以自己写一个方法来覆盖它。

  

  这回我们在子类里面又写了一个surface方法,成功将父类继承下来的同名方法覆盖了。

转载于:https://www.cnblogs.com/zhangnan35/p/8475994.html


http://lihuaxi.xjx100.cn/news/257824.html

相关文章

通过应用程序域AppDomain加载和卸载程序集之后,如何再返回原来的主程序域

实现目的:动态加载dll,执行完毕之后可以随时卸载掉,并可以替换这些dll,以在运行中更新dll中的类。 其实就是通过应用程序域AppDomain加载和卸载程序集。 在这方面微软有篇文章http://www.microsoft.com/china/msdn/archives/libra…

参观Speedy Cloud 有感

上周老男孩的所有学生参观了Speedy Cloud ,在这里我首先感谢Speedy Cloud的邀请和服务,我们每一个同学的收获都很大,不管是在以后的发展,还是现在的学习,都给了我很大的推动作用,帮助我去了解计算机的发展的…

LSGO代码小组第16周复盘日志

LSGO代码小组第16周复盘日志,汇报人:高勇

Golang+Python 实现安全动态开机密码+服务器存储

作者 | 李秋键 出品 | AI科技大本营(ID:rgznai100) 引言: 如果谈到近几年来新起的语言,必然离不开Python语言和Go语言,正如python在人工智能领域的发展火热,Go语言在服务器并发处理也有着非常优势。 Go语言…

MVVM框架原理浅谈

MVVM基本原理 MVVM(Model-View-ViewModel)本质上就是MVC 的改进版,MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。 #mermaid-svg-px7vAJmaNYvX322n .label{font-family:trebuchet ms, verdana, arial;font-family:var(--m…

Spring MVC 五大组件

欢迎关注方志朋的博客,回复”666“获面试宝典是一个MVC架构,用来简化基于MVC架构的Web应用开发。SpringMVC最重要的就是五大组件1. DispatcherServlet2. HandleMapping3. Controller4. ModeAndView5. ViewResolver下面一一介绍这五大控件1. DispatcherSe…

max(min)-device-width和max(min)-width的区别

max-device-width和max-width的区别表现在如下几个方面: 1. max-device-width是设备整个显示区域的宽度,例如,真实的设备屏幕宽度。 2. max-width是目标显示区域的宽度,例如,浏览器宽度。 3. 如果使用max-device-width…

磁盘及文件系统管理详解

2019独角兽企业重金招聘Python工程师标准>>> 大纲 一、硬盘物理结构及相关结构 二、硬盘逻辑结构及相关概念 三、Ext2文件系统逻辑结构 四、读取、创建、删除、复制、剪切过程 五、软链接与硬链接联系与区别 六、虚拟文件系统 六、文件系统管理相关命令 一、硬盘物理…