JavaScript中es6中的class和class的继承(三)

博客主要介绍了class类的继承,指出在后端语言中对该概念理解更清晰,实例化最后一个继承的子类可拓展父类方法。还对比了ES6和ES5的继承方法,ES6更清晰易懂、便于学习,而ES5只能用原始的apply完成继承。

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

class类的继承

一般这种概念在后端语言会理解的比较 清晰快捷一点 就只要知道 实例化 最后一个继承的子类 就可以了, 这样就会去拓展父类里面的方法 ,相比起es5的继承方法 es6 的继承方法 更能让人 清晰易懂 也更方便去学习

新的改变

class Parent {
    constructor(project) {
        //如果Children的super里面不写project,那么接收的就是undefined
        this.childrenProject = project;
        console.log(this.childrenProject);
    }
    
    print() {
        return 'Parent';
    }
}



class Children extends Parent{
    constructor(project) {  //接收到Children本身传入内容
        super(project);   //可以看做是链接父级类的通道 construct内接收
        //super()是继承类的时候才能用到的关键字 这与React中的接收props一样,super中传入的参数是父类能够接收到的内容
        console.log(super.print() === this.print());// true  此时Parent中的print和Children本身的print()就是一样的了,这与super中的参数无关
        console.log(this);
    }
    
}

const higher = new Children('ReactES6');
//给Children传入内容
console.log(higher);

es5的继承写法

es5 中的继承 只能用原始的,applay 去完成。

(function () {
    var A = function (contents) {
        this.app = document.querySelector('.es5-children');
        this.appClass = this.app.className;
        console.log(contents);  //I am a String
        this.listeners();  // B.listeners()
        this.init();  //这里就相当于 调用了 B.init()
    };
    A.prototype = {
    
    };
    
    var B = function (main) {   //construct(main)
        A.call(this, main);  //需要把内容 传入 父级  相当于 super(main)
        this.main = main;
        // this.init();
    };
    B.prototype = {
        init() {
            console.log(this.app);  //<div class="es5-children"></div>
            console.log(this.appClass);  // es5-children
            console.log(this.main);
        },
        listeners(){
            console.log(this.main);  //undefined
        }
    };
    var result = new B('I am a String');
    console.log(result);
})();

***

这只是其中 继承 的一种 算是比较简单的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值