JavaScript继承ES6实现

本文深入探讨ES6中类的定义与使用,通过具体示例讲解构造方法、实例方法及静态方法。同时,详细解析如何利用extends关键字实现类的继承,super关键字的作用及其在子类构造函数中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES6实现继承

// 父类
        class Cat{
            // 构造函数
            constructor( a , b){
                // 对象自身属性
                this.name = a;
                this.age = b;
                // 实例对象上的函数
                this.sayHi = function(){
                    console.log('喵喵喵');
                }
            }
            // 实例对象的属性
            type = 'animal'
            // 原型对象上的方法直接在这里添加
            sayMiao(){
                console.log('hello喵');
            }
            // 如果要在类上添加静态方法,需要在函数前用关键字声明
            static sayHello(){
                console.log('静态方法');
            }
        }
        // Cat.sayHello();
        // let cat1 = new Cat( '小黑' , 5)
        // console.log(cat1);

        // 子类
        // 继承关键字extends
        class Son extends Cat{
            constructor(a, b , f){
                // 子类可以看做没有this,
                //调用super方法后才可以操作,super传递参数给父类
                super(a , b);
                // 子类专属的值和方法设置
                this.f = f
                this.sonSay=function(){
                    console.log('子类实例对象的方法');
                }

            }
            sontype = 'sontype';
            // 子类原型上的方法
            sonSayMiao(){
                console.log('son喵');
            }
            // 子类的静态方法(构造函数上的方法)
            static sonSayHello(){
                console.log('sonSayHello');
            }
        }
        let son1 = new Son('小白',5 , '猫')
  1. 用class定义一个‘类’,可以看到里面有一个constructor方法,这就是构造方法,二this关键字代表实例对象。简单说,constructor内定义的方法和属性是实例对象自己的,而constructor外定义的方法是所有实例对象可以共享的。
  2. class之间可以通过extends关键字实现继承
  3. super关键字,它指向父类的实力(即父类的this对象)。子类必须在constructor方法中调用super方法,否则新建实例时会报错。这是因为子类没有的this对象,而是继承父类的this对象,然后对其进行加工。
  4. ES6的继承机智,实质是先创造父类的实例对消this,然后在用子类的构造函数修改this
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值