ES6与ES5继承比较
2017-07-28 11:36
459 查看
1. 关于ES5寄生构造函数继承
2. ES6继承方法
ES5继承实质:先创建实例对象this,再将父类方法添加到this上面。
ES6继承实质:先创造父类的实例对象this,用子类的构造函数修改this.
/*寄生组合式继承*/ function inHeritPrototype(SuperType,SubType) { var prototype=Object(SuperType);//创建对象 prototype.constructor=SubType;//增强对象 SubType.prototype=prototype; } function SuperType(name){ this.name=name; this.colors=["blue","white"]; } SuperType.prototype.sayName=function () { console.log(this.name); }; function SubType(age,name) { SuperType.call(this, name); this.age=age; } inHeritPrototype(SuperType,SubType); SubType.prototype.sayAge=function () { return this.age; }; var instance1=new SubType("hello",28); console.log(instance1);
2. ES6继承方法
class SuperType{ constructor(name){ this.name=name; this.colors=["blue","white"] } sayName(){ console.log(this.name) } } class SubType extends SuperType{ constructor(name,age){ super(name);//super调用父类的方法,会绑定子类的this. this.age = age; } sayAge(){ return this.age; } } var instance2 = new SubType("hello",29); console.log(instance2);
ES5继承实质:先创建实例对象this,再将父类方法添加到this上面。
ES6继承实质:先创造父类的实例对象this,用子类的构造函数修改this.
相关文章推荐
- 关于ES5中的prototype与ES6中class继承的比较
- ES5和ES6中对于继承的实现方法
- ES6的Object.is()超越ES5 比较两个值是否相等
- ES5和ES6中对于继承的实现方法
- React: ES5 和 ES6 比较
- es6继承 vs js原生继承(es5)
- ES5中的继承和ES6中的继承
- ES5和ES6中的继承 图解
- 图解说明ES5和ES6中继承的区别
- es6的特点 ---和es5做比较
- es5与es6继承思考
- ES5与ES6继承的区别
- ES5和ES6中的继承
- JavaScript原型链以及ES3、ES5、ES6实现继承的不同方式
- js重新讲解继承,es5的一些继承,es6继承的改变 ----------由浅入深
- es5和es6中封装继承的不同
- 继承之es5对比es6
- 类的继承/方法的重写/与C++的比较day11
- 传统方法过渡到ES6去优雅地实现JavaScript的继承
- ES6中新增数组方法与ES5之间的区别