es5继承及es6继承?以及栈的结构?

127 阅读1分钟

es5和es6的继承有什么区别

ES5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上(Parent.apply(this)). Es5继承有原型链继承,构造函数继承,组合式继承寄生式组合继承

ES6的继承机制完全不同,实质上是先创建父类的实例对象this(所以必须先调用父类的super()方法),然后再用子类的构造函数修改this。

ES5的继承是通过原型或构造函数机制来实现。

ES6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承。子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己的this对象,而是继承了父类的this对象,然后对其进行加工。如果不调用super方法,子类得不到this对象。

es6的继承

image.png

es5的继承

image.png

栈的结构

栈是一种常见的数据结构,在程序中应用广泛

栈的进出顺序是先进入栈中的后出来 后进入的先出来

image.png

栈常见有哪些操作呢?

  1. push(element): 添加一个新元素到栈顶位置

  2. pop(: 移除栈顶的元素,同时返回被移除的元素

  3. peek0 : 返回栈顶的元素,不对栈做任何修改( 这个方法不会移除栈顶的元素,仅仅返回它)

  4. isEmpty0 : 如果栈里没有任何元素就返回true,否则返回false。

  5. size0 : 返回栈里的元素个数。这个方法和数组的length属性很类似。

  6. toString0 : 将栈结构的内容以字符形式返回