es5和es6的继承有什么区别
ES5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上(Parent.apply(this)). Es5继承有原型链继承,构造函数继承,组合式继承寄生式组合继承
ES6的继承机制完全不同,实质上是先创建父类的实例对象this(所以必须先调用父类的super()方法),然后再用子类的构造函数修改this。
ES5的继承是通过原型或构造函数机制来实现。
ES6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承。子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己的this对象,而是继承了父类的this对象,然后对其进行加工。如果不调用super方法,子类得不到this对象。
es6的继承
es5的继承
栈的结构
栈是一种常见的数据结构,在程序中应用广泛
栈的进出顺序是先进入栈中的后出来 后进入的先出来
栈常见有哪些操作呢?
-
push(element): 添加一个新元素到栈顶位置
-
pop(: 移除栈顶的元素,同时返回被移除的元素
-
peek0 : 返回栈顶的元素,不对栈做任何修改( 这个方法不会移除栈顶的元素,仅仅返回它)
-
isEmpty0 : 如果栈里没有任何元素就返回true,否则返回false。
-
size0 : 返回栈里的元素个数。这个方法和数组的length属性很类似。
-
toString0 : 将栈结构的内容以字符形式返回