javascript中的原型与继承6--class的继承

先来一个老的继承

function SuperType(name) {
}


function SubType(name,age) {
}


SubType.prototype=Object.create(SuperType.prototype);


console.log(SuperType.prototype.__proto__==Object.prototype);//true,因为SuperType.prototype是一个比较一般的object
console.log(SubType.__proto__ === Function.prototype)//true,
console.log(SubType.prototype.__proto__ === SuperType.prototype )//true------------------------------------3

3式是什么意思?得从SubType.prototype=Object.create(SuperType.prototype);这句话来理解:SubType.prototype被赋值成了一个对象,记作a,  

有a.__proto__是SuperType.prototype,就这么成立了。


在来一个新的方式

class SuperType {
}


class SubType extends SuperType{
}


console.log(SuperType.prototype.__proto__==Object.prototype);//true
console.log(SubType.__proto__ === Function.prototype)//false   这个和传统的方式不一样啊,天哪
console.log(SubType.__proto__ === SuperType)//true,表示构造函数的继承
console.log(SubType.prototype.__proto__ === SuperType.prototype )//true,当作传统的理解就行



参考文献:

http://es6.ruanyifeng.com/#docs/class-extends

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值