js的类与继承

  • 项目结构
    在这里插入图片描述
  • 具体代码
    index.js
import Test1 from './pakeages/one/test1.js'
import Test3 from './pakeages/three/test3.js'
let btn = document.querySelector("#btn");
let test1 = new Test1();

btn.onclick = function () {
    btn.innerHTML += test1.name;
    let t3 = new Test3('李华', 21, '173cm')
    console.log(t3);
    t3.sm();
}

test1.js

import Test2 from '../two/test2.js'
export default class Test1{
    static age = 18;
    constructor(){
        this.name = "张三"
        console.log(new Test2(Test1.age));
    }
}

test2.js

export default class Test2{
    constructor(name){
        this.name = name;
    }
    running(){
        console.log(this.name + '在跑步ing');
    }
    pm(){
        console.log('逻辑1');
        console.log('逻辑2');
    }
}

test3.js

import Test2 from '../two/test2.js'
export default class Test3 extends Test2{
    constructor(name, age, height){
        super(name);// -> this.name = name;
        this.age = age;
        this.height = height;
    }
    sm(){
        super.pm()
        console.log('逻辑3');
        console.log('逻辑4');
    }
}

重点示例

import

import Test1 from './pakeages/one/test1.js'
import Test3 from './pakeages/three/test3.js'

extends

export default class Test3 extends Test2

super()

在子类(派生类)的构造函数中使用this或者返回默认对象之前,必须先通过super调用父类的构造函数,否则会报错。

import Test2 from '../two/test2.js'
export default class Test3 extends Test2{
    constructor(name, age, height){
        super(name);// -> this.name = name; 解决代码冗余
        this.age = age;
        this.height = height;
    }
    sm(){
        super.pm(); // -> 调用父类方法供子类使用
        console.log('逻辑3');
        console.log('逻辑4');
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值