美文网首页
ECMAScript6--14.类与对象

ECMAScript6--14.类与对象

作者: 飞菲fly | 来源:发表于2017-10-23 16:58 被阅读28次

1.类

  • 类的概念
    • 基本语法
    • 类的继承
    • 静态方法
    • 静态属性
    • getter
    • setter

2.类的基本定义和生成实例

{
    //定义一个类的基本方法:class 名称{ }
    class Parent{
        constructor(name='abc'){
            this.name = name;
        }
    }
    
    /生成实例;v就是构造函数里面的参数;
    let v_parent = new Parent('v');
    console.log('构造函数和实例',v_parent); //构造函数和实例 Parent{name:"v"}
}

3.继承:extend关键字实现继承

{
    class Parent{
        constructor(name='abc'){
            this.name = name;
        }
    }
    
    //通过extends关键字实现继承,继承了Parent实例;
    class Child extends Parent{
        //怎么在自己的构造函数中把参数传递给父类;
        
    }
    
    //子类怎么去覆盖父类的默认值呢?(继承怎么传递参数)
    console.log('继承',new Child()); //继承 Child{name:"abc"}

}

 {
    class Parent{
        constructor(name='abc'){
            this.name = name;
        }
    }
    
    //通过extends关键字实现继承,继承了Parent实例;
    class Child extends Parent{
    
        //怎么在自己的构造函数中把参数传递给父类;
        constructor(name='child'){
        
            //super中参数的列表就是父类的constructor的参数列表;
            //如果在子类中super()不带任何参数,父类中构造函数的所有都会使用父类的默认值;
            super(name);
            
            //子类要增加自己的属性;
            //注意:定义自己属性的时候调用this,一定要放在super之后;
            //在继承关系中,子类的构造函数用了super传递参数的过程中,super一定是要放在构造
              函数的第一行;
            this.type ='child';
        }
    }
    
    //子类怎么去覆盖父类的默认值呢?(继承怎么传递参数)
    console.log('继承传递参数',new Child()); 
   //继承传递参数 Child{name:"child",type="child"}
    
    //带参数,参数会覆盖默认值;
    console.log('继承传递参数',new Child('Hello')); 
    //继承传递参数 Child{name:"Hello",type="child"}

}

3.类中的getter和setter

{
    class Parent{
        constructor(name='abc'){
            this.name = name;
        }
    
        //getter的写法:get 名字(){}这个是属性,不是方法;
        //读取longName属性;
        get longName(){
            return 'mk'+this.name;
        }
    
        //setter
        set longName(value){
            this.name = value;
        }
    }
    
    let v = new Parent();
    console.log('getter',v.longName); //getter mkabc
    
    v.longName ='hello';
    console.log('setter',v.longName); //setter mkhello
}

4.静态方法

{
     class Parent{
        constructor(name='abc'){
            this.name = name;
        }
        
        //静态方法的定义:static 方法名称(){ 函数要执行的具体内容 }
        //加了static这个方法就变成静态方法,static只是用来定义静态方法;
        //静态方法:通过类去调用,而不是通过类的实例调用;
        static tell(){
            console.log('tell');
        }
    }
    
    //静态方法的使用;
    Parent.tell();// tell
}

5.静态属性

{
    class Parent{
        constructor(name='abc'){
            this.name = name;
        }
        
        static tell(){
            console.log('tell');
        }
        
    }
    
    //静态属性没有关键词;
    //类定义完之后,直接在类上定义静态属性;
    //这个Parent注意一定是类,不是实例;
    Parent.type = 'test';
    
    console.log('静态属性的读取',Parent.type); //静态属性的读取 test
    
}

相关文章

  • ECMAScript6--14.类与对象

    1.类 类的概念基本语法类的继承静态方法静态属性gettersetter 2.类的基本定义和生成实例 3.继承:e...

  • 类与对象(类与对象定义)

    类与对象的定义和使用 如果在程序之中要定义一个类可以使用class关键字完成,而定义的语法如下: 在这个类中只是定...

  • 函数类和对象区别

    类与类:行为不同 对象与对象:数据不同

  • python入门开发学习笔记之类与对象

    本节重点 掌握什么是类、什么是对象 掌握如何定义及使用类与对象 了解对类与对象之间的关系 类与对象的概念 类即类别...

  • 类对象与类的对象

    类对象(obj.getClass)描述的是类的代码信息,比如哪些属性、属性是什么类型、变量名是什么、哪些方法、方法...

  • python-高级、面向对象

    一、类与对象 二、类和对象

  • Java面向对象笔记

    类和对象 对象的概念 什么是面向对象 类 什么是对象的属性 什么是对象的方法 类与对象的关系/与区别 什么是对象 ...

  • 006-面向对象1

    面向过程与面向对象 开车问题 吃饭问题 做饭问题 类与对象 类的概念 对象的概念 练习: 区分类与对象 类的组成 ...

  • 三、元类对象的本质

    1. 元类对象结构。 与类对象的结构一样。 与类对象比较 2. 元类对象的获取。 通过object_getClas...

  • 格物致知iOS类与对象

    格物致知iOS类与对象 格物致知iOS类与对象

网友评论

      本文标题:ECMAScript6--14.类与对象

      本文链接:https://www.haomeiwen.com/subject/pmmauxtx.html