js 调用class_ES6 的新鲜玩意儿——class

这玩意是期待好久,终于要回归到了久违的感觉。我们先撸完es6的class,再来重温es5的类。

面向对象开发三巨头:封装、多态、继承。在后端语言中这是天天得念叨的,只是js真的好像不怎么说起,似乎真的是没有这几个概念。或许是js对这几个概念处理太过于自由,有太多的办法来展现,所以就有那么一点儿不在意。或许是我使用js只是在非常简单的功能,自己内功不行。下面回归es6的class,不过虽然es6加上了class,还是缺少了接口,面向抽象开发好像在js还是有些不可行。

先来讲几个概念:面向对象、封装、多态、继承、重载。

1、面向对象:任何物体都是一个独立对象,任何物体都可划分到自己的分类。这与物与类聚,人以群分多少有相似的感觉。面向对象就是将所有的概念或者物体抽象成不同的类,然后以类为基础进行属性与行为的封装。最后将各行为个体以类为单位进行生成,一般都是以new 关键字来进行生成对象。最后将各个不同的对象进行有机组合,形成系统。

2、封装:在面向对象思想中,封装是以一个类做基础框架的,封装是在类中进行的,封装就是对一个个类的属性、行为有机表示(当然也可以通过继承得来),以形成类的灵魂。

3、多态:多态就是对象的生成可以有多种形式,这种多是基于继承的基础之上。使用专业的口头语就是父类对象指向子类地址。

4、重载:一个类中的相同行为的入参不同。

5、重写:子类对象对继承来的方法注入自己的逻辑,覆盖了父类的逻辑。

以上的概念是我对C#语言的面向对象的理解,希望es6 对这些概念不要有颠覆概念。

撸码之前,我们先提几个问题:

1、es6基于class如何new 对象的?

2、es6基于class如何继承的?

3、es6是否能够同时继承多个类?

4、es6是否有多态,如何表示?

5、es6是否重载?

6、es6是否可以重写?

7、es6 原型链是如何的?

如果解决了上面几个问题,es6的基于class的面向对象开发就到味了。废话少说,撸起。

1、类的封装及实例创建

/*****
 * 工程师类
 */
class Engineer{
    
    /***
     * 构造函数
     */
    constructor(name){
    
        this.name = name;
    }

    /****
     * 不能使用let、const、var 等修饰符
     */
    work="";

    /***
     * 心态好,永远18岁
     */
    age = 18;

    /****
     * 介绍我的名字,不能在前面加function
     */
    introduce(){
    
        console.log(`myName is:${
    this.name}`);
        console.log(`myWork is:${
    this.work}`);
        console.log(`age is:${
    this.age}`);
    }
}
//使用 new 来创建一个实例对象
let engineer = new Engineer("爱钱的大笨蛋");
engineer.introduce();//调用实体方法(函数/行为)

类名称要符合帕斯卡(Pascal)命名法,这个是开发人员的小规范。上面的代码回答了第1个问题,es6中的类可以直接 new 类模板,便可以创建一个实例对象。有一个非常重要的注意点是,变量不允许使用var、let、const来修饰,行为不允许使用function来修饰。上面的例子在实例化的时候传入了需要的变量name,其他二个属性直接在类模板中进行默认配置。

2、继承

/*****
 * 工程师类
 */
class Engineer{
    
    /***
     * 构造函数
     */
    constructor(name){
    
        this.name = name;
    }

    /***
     * 名称
     */
    name="";

    /****
     * 不能使用let、const、var 等修饰符
     */
    work="";

    /***
     * 心态好,永远18岁
     */
    age = 18;

    /***
     * 使用语言列表
     */
    languageArr=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值