ES5与ES6继承的区别
2017-05-11 16:47
387 查看
ES5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上(Parent.apply(this)).
ES6的继承机制完全不同,实质上是先创建父类的实例对象this(所以必须先调用父类的super()方法),然后再用子类的构造函数修改this。
ES5的继承时通过原型或构造函数机制来实现。
ES6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承。子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己的this对象,而是继承了父类的this对象,然后对其进行加工。如果不调用super方法,子类得不到this对象。
注意super关键字指代父类的实例,即父类的this对象。
注意:在子类构造函数中,调用super后,才可使用this关键字,否则报错。
ES6的继承机制完全不同,实质上是先创建父类的实例对象this(所以必须先调用父类的super()方法),然后再用子类的构造函数修改this。
ES5的继承时通过原型或构造函数机制来实现。
ES6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承。子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己的this对象,而是继承了父类的this对象,然后对其进行加工。如果不调用super方法,子类得不到this对象。
注意super关键字指代父类的实例,即父类的this对象。
注意:在子类构造函数中,调用super后,才可使用this关键字,否则报错。
相关文章推荐
- 图解说明ES5和ES6中继承的区别
- es6继承 vs js原生继承(es5)
- ES5中的var与ES6中的let,const的区别
- ES5和ES6中的继承
- JavaScript原型链以及ES3、ES5、ES6实现继承的不同方式
- JavaScript、ES5和ES6的介绍和区别
- es6与es5 中this的区别
- es6和es5的区别
- JavaScript、ES5和ES6的介绍和区别
- ES6中新增数组方法与ES5之间的区别
- React中ES5与ES6写法的区别总结
- ES5和ES6中对于继承的实现方法
- es5与es6继承思考
- ES5中的继承和ES6中的继承
- es6中的let声明变量与es5中的var声明变量的区别,局部变量与全局变量
- ES5和ES6的区别
- ES5和ES6中对于继承的实现方法
- React ES6与ES5写法的区别
- es5和es6中封装继承的不同
- 关于ES5中的prototype与ES6中class继承的比较