es6中class的理解

// 继承的区别
// es5:是先生成子类的实例,给子类添加this关键字的引用,然后再将父类的方法添加到this上进行引用,例如parent.call(this)
// es6:继承机制完全不同,实质是先创建父类的实例对象,必须先调用super,然后给子类添加this
 //super关键字
 //1、被当作函数引用时,代表父类的构造函数
 //2、super当被作为对象时,再普通方法中指向父类的原型对象
    class Father{//创建父类
        constructor(x,y){//创建父类构造器
            this.x=x;
            this.y=y
        }
        money(){//创建父类方法     其实时存在与Father的原型链上的
            return this
        }
        say(){
            console.log("我会唱歌")
        }
    }
    class Son extends Father{//继承父类
        constructor(x,y,age){  //孩子的构造器  
            super(x,y)//调用父类构造器中的函数
            this.age=age  
            super.money()  
        }       
    }
    var son=new Son(3,2,5)
    console.log(son.x)//3
    son.say()//我会唱歌
    console.log(son.money())//5   调用父类上边的方法时   此时this指向的时son
    console.log(Father.prototype)  //{constructor: ƒ, money: ƒ, say: ƒ}
    //Object.getPrototypeOf用来从子类上获得父类对象
    console.log(Object.getPrototypeOf(son))//Father {constructor: ƒ}
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值