美文网首页
ES6 class类

ES6 class类

作者: 祝名 | 来源:发表于2018-12-17 23:00 被阅读0次

一.class类的创建

class animal{
    constructor(){
        console.log('类被实例化了');
        this.color = '颜色';
        this.weight = '重量';
    }
    move(){
        console.log('能动');
    }
}
let xiaohuang = new animal();
-->自动输出'类被实例化了'
console.log(xiaohuang.color);
-->颜色
xiaohuang.move();
-->能动

1. class用来声明一个类

2.通过类创建的对象要有属性,这些属性都要声明在 constructor函数中,constructor为构造函数(与我们之前了解的构造函数不是同一个)。

3. constructor的区别在于,在实例化类的时候,会自动执行构造函数。

4. 实例化类对象的时候,如果不需要传参,可以不用加括号。

let xiaohuang = new animal;

5. 对象的方法,直接写在类里面即可(不要写在constructor里面),类里面不同方法不需要用逗号隔开,类里面的方法不需要function来声明。

二.类的传参

1.在实例化类的时候,传入的参数都会被constructor接收

class animal{
    constructor(c,w){
        this.color = c;
        this.weight = w;
    }
    move(){
        console.log('能动');
    }
}
let xiaohuang = new animal('黄色','3斤');
console.log(xiaohuang.color);
-->黄色 

三.类的继承

1. 子类继承于父类-->class 子类 extends 父类

父类(动物类)
class animal{
    constructor(c,w){
        this.color = c;
        this.weight = w;
    }
    move(){
        console.log('能动');
    }
}

子类(鱼类)
class fish extends animal{
    moveabout(){
        console.log('能游');
    }
}
let shark = new fish('蓝色','300公斤');
console.log(shark.color);
-->蓝色 
shark.moveabout();
-->能游

2. 子类会继承父类的所有属性和方法

3. 子类也可创建自己新的方法,写在类中

4. 子类中可以重写父类的方法,会覆盖父类的方法,执行自己的(但父类还是执行自己的方法)

接上例

class fish extends animal{
    move(){
        console.log('鱼类能动');
    }
}
let shark = new fish();
shark.move();
-->鱼类能动

四.继承中的super()方法

1.在创建子类自己的属性时,如果子类要用this关键字,就必须在constructor方法里先执行super()方法。

  • super()方法表示的是父类的constructor方法,所以子类对象也可使用父类的属性。
class fish extends animal{
    constructor(){
        super();
        this.lin = '鳞片';
    }
}
let shark = new fish();
console.log(shark.lin);
-->鳞片

五.继承中的super对象

1. super对象指向父类的prototype原型区域,子类中可以通过super对象获得或执行父类的方法。

class animal{
    constructor(c,w){
        this.color = c;
        this.weight = w;
    }
    move(){
        console.log('能动');
    }
}
class fish extends animal{
    constructor(){
        super();
        this.lin = '鳞片';
        super.move();
    }
}
let shark = new fish();

六.类的表达式

let a = class animal{
    constructor(){
        this.color = '颜色';
        this.weight = '重量';
    }
}
let keji = new a();
//此时,用new animal会报错
console.log(keji.color);
-->颜色

相关文章

  • ES6 class与继承

    class是什么 class是定义类的方法。ES6之前用构造函数的方式定义类,ES6引入了class。 class...

  • 深入理解JS面向对象 - JavaScript实现继承的五种方式

    一、类与实例 1. 类的声明 传统function类的声明 ES6中的class声明 1.1 ES6 class与...

  • 2JavaScript设计模式--class/extends

    ES6语法 类 class ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板...

  • react组件

    es6 的class类的继承 运用es6 class继承 通过继承React.Component类来定义一个组件

  • 第三十二节: ES6 Class类

    1. ES6 Class 类 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板...

  • 第三十二节: ES6 Class类

    1. ES6 Class 类 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板...

  • 深入理解ES6中class的this指向

    在ES6中,引入了类似其他语言的类的写法:即class(类),作为类对象模板。ES6 的class可以看作一个语法...

  • ES6 class类

    在ES6以前,没有类的概念,所有的面向对象都是基于原型实现的。ES6中可以通过class定义类,但是class的本...

  • ES6 class类

    ES6 class类知识点梳理 大概从几个方面来讲解ES6 class类和传统的构造函数的区别。 必须要有cons...

  • class to es5

    1.Class 众所周知js是没有class的,但是es6却给了我们“类”的概念;我们先写一个es6的类: 查看其...

网友评论

      本文标题:ES6 class类

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