请问一下类继承和原型继承对比,优缺点是什么?
原型继承的所依赖的 __proto__
已经在废除计划中。
硬要说它有优点,那也就时写起来方便,不像类式继承那样还得关心 this
,call
来 call
去,稍不注意就容易写飞。
缺点那就很多了:影响 getPrototypeOf
;所谓继承实际发生在每次 new
之后,所有所谓继承成员都是新的对象,内存开销大;运行时无法动态添加新成员,失去了 JS 的灵活性;等等等等。
ES6 了就有更符合 OOP 的 class
,上面第一种写法反直觉容易写飞、第二种写法坑多,所以已经很少用了;就算为了兼容低版本,Babel 一下就好了。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
不清楚浏览器原生实现的 class ,现在 es6 转 es5 的类继承本质是模拟原型继承
https://babeljs.io/repl