点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
JavaScript没有类这一点一直是ECMAScript设计里比较糟糕的地方,这也导致了在ECMAScript6以前定义类的方法及类的继承方式多种多样, 就类的继承方式来说,基本思路就有原型链继承,构造函数继承,实例继承和拷贝继承几种, 但每种方法多多少少都有自己的缺陷,因为它都不是真正的类继承。
例如会出现了子类不一定是父类的实例,子类和父类共享一个实例等。ECMAScript6添加了class关键字,一切便都有章有循了。
如下代码:
当然,有了class,就有extends,对于开发者来说, 使用class很大的好处是实现一个类的代码模块只能在一个地方定义。想想以前我们可以在代码中的任意位置去扩展基类的prototype属性,从某种意义上来说,class类声明解决了这个之前设计糟糕的地方,对代码的规范性和严谨性都是提出了更好的限制方案。