类继承和原型继承的优缺点

请问一下类继承和原型继承对比,优缺点是什么?

阅读 1.8k
3 个回答

不清楚浏览器原生实现的 class ,现在 es6 转 es5 的类继承本质是模拟原型继承
https://babeljs.io/repl

类降级都是编译成原型

原型继承的所依赖的 __proto__ 已经在废除计划中。

硬要说它有优点,那也就时写起来方便,不像类式继承那样还得关心 thiscallcall 去,稍不注意就容易写飞。

缺点那就很多了:影响 getPrototypeOf;所谓继承实际发生在每次 new 之后,所有所谓继承成员都是新的对象,内存开销大;运行时无法动态添加新成员,失去了 JS 的灵活性;等等等等。


ES6 了就有更符合 OOP 的 class,上面第一种写法反直觉容易写飞、第二种写法坑多,所以已经很少用了;就算为了兼容低版本,Babel 一下就好了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题