美文网首页
ES6中类与类的继承

ES6中类与类的继承

作者: 他爱在黑暗中漫游 | 来源:发表于2018-06-22 01:02 被阅读18次
  • ES6以前,javascript中类的继承可以使用function和原型prototype来模拟类class来实现面向对象编程。
// ES5写法
function Person(name, age) {
  this.name = name;
  this.age = age;
}
Person.prototype.sayHello = funciton() {
  console.log(`Hello,大家好,我叫${this.name},我今年${this.age}岁了`);
}
var p1 = new Person('张三', 18);
p1.sayHello()
  • ES6中javascript带来了类的概念,但是实际上,javascript的类class本质上也是基于原型prototype的实现方式做了进一步的封装,让我们使用起来更简单明了。也就是说它实际上也是函数function和原型prototype实现的。

用法

class Person(name, age) {
  // 类的构造函数
  // new Person 的时候自动调用
  // 构造函数的作用用于对实例进行初始化操作
  constructor(name,age) {
    this.name = name;
    this.age = age;
   }

    // 实例语法直接写到类的内部
    // 语法注意
    // 方法名称 () { 方法体 }
    // 在实例方法内部的this是实例自己
    // 类的成员与成员之间不能有逗号
    sayHello() {
        console.log(`您好,我叫${this.name},我今年${this.age}岁了`);
    }

    haha() {
        console.log('哈哈哈');
    }

    // 除了实例方法,还有静态方法
    // 静态成员只能被类本身访问
    static hehe() {
        console.log('呵呵呵');
    } 
}

// var p1 = new Person('张三', 18);
// p1.sayHello();
// p1.haha(); 
// Person.hehe();


class Student extends Person {
    constructor(name, age, stuId) {
        // super 指向的是父类构造函数constructor
        super(name, age);
        this.stuId = stuId;
    }

    // 在ES6中,提供了一个种新的方法,在构造函数的外部对实例成员初始化
    foo = 'bar'  // 在node中不支持  babel中可以使用

    study() {
        console.log(`${this.name},学号:${this.stuId} 爱学习`)
    }
}

const s1 = new Student('李四',18,11110);
s1.study();
Student.hehe();
  • 在bable中显示


    图片1.png
  • 运行结果展示


    2018-06-22_010137.png

相关文章

  • ES的类与继承

    ES5中的类与继承 构造函数继承,原型继承,组合式继承 静态方法,静态属性,实例方法,实例属性 ES6中的类与继承...

  • ES6

    ES6是一个语言标准,不是一个框架。 ES6中的class与继承 class是创建类对象与实现类继承的语法糖,旨在...

  • 面向对象类

    类与实例 类的声明 ES5 ES6 生成实例 类与继承 如何实现继承 继承的几种方式 原型链是实现继承的主要方法 ...

  • ES6中类与继承的理解(java对比记忆)

    ES6中类与继承的理解(java对比记忆) 先上两段代码:java中定义类: Es6中定义一个类: 通过上面两端代...

  • 继承

    老版继承 call () ES6继承 extends 继承super 超类/父类

  • ES6中类与类的继承

    ES6以前,javascript中类的继承可以使用function和原型prototype来模拟类class来实现...

  • JS中类的继承封装和多态

    子类继承父类的属性和方法(原生继承,call继承,寄生组合继承,ES6中class类继承)原生继承:让子类的原型指...

  • es5 es6静态方法、类、单例模式

    es5中的类和静态方法 es5继承 es6中的类 es6里面的继承 es6里面的静态方法 es6单例模式 转载:h...

  • react组件

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

  • javascript之模拟类继承

    前言 ES6时代的来临,使得类继承变得如此的圆滑。但是,你有思考过ES6的类继承模式吗?如何去实现它呢? 类继承对...

网友评论

      本文标题:ES6中类与类的继承

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