• 技术文章 >web前端 >前端问答

    es6中实现继承的方式是什么

    青灯夜游青灯夜游2022-04-11 16:43:19原创124

    在es6中,可利用class关键字配合extends关键字来实现继承。ES6中引入了class关键字来声明类, 而class(类)可通过extends来继承父类中属性和方法,语法“class 子类名 extends 父类名{...};”。

    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

    es6中可利用class关键字配合extends关键字来实现继承

    在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。

    es6继承

    Class 可以通过extends关键字实现继承

    class Animal {}
    class Cat extends Animal { };

    上面代码中 定义了一个 Cat 类,该类通过 extends关键字,继承了 Animal 类中所有的属性和方法。 但是由于没有部署任何代码,所以这两个类完全一样,等于复制了一个Animal类。 下面,我们在Cat内部加上代码。

    class Cat extends Animal {
        constructor(name, age, color) {
            // 调用父类的constructor(name, age)
            super(name, age);
            this.color = color;
        }
        toString() {
            return this.color + ' ' + super.toString(); // 调用父类的toString()
        }
    }

    constructor方法和toString方法之中,都出现了super关键字,它在这里表示父类的构造函数,用来新建父类的this对象。

    需要注意的是:class 关键字只是原型的语法糖, JavaScript 继承仍然是基于原型实现的。

    class Pet {
      constructor(name, age) {
        this.name = name;
        this.age = age;
      }
    
      showName() {
        console.log("调用父类的方法");
        console.log(this.name, this.age);
      }
    }
    
    // 定义一个子类
    class Dog extends Pet {
      constructor(name, age, color) {
        super(name, age); // 通过 super 调用父类的构造方法
        this.color = color;
      }
    
      showName() {
        console.log("调用子类的方法");
        console.log(this.name, this.age, this.color);
      }
    }

    优点:

    缺点:

    【相关推荐:javascript视频教程web前端

    以上就是es6中实现继承的方式是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:es6 继承
    上一篇:javascript怎么禁止拷贝 下一篇:javascript怎么移除元素点击事件
    Web大前端开发直播班

    相关文章推荐

    • ES6的保留字有哪些• es6怎么检测数组中有没有某个元素• es5和es6作用域的区别是什么• es6怎么判断对象有没有某属性• es6怎么判断一个变量是否为字符串• es6能用var声明变量吗

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网