有了ES6 的 class ,还有必要去搞明白 ES5 的继承,面向对象方法吗?

ES6 的 class 虽然知识语法糖,但是毕竟已经是标准了,目前作为入门的前端er,还有必要去搞明白 ES5 的那一套对象原型的写法吗?或者是拥抱 ES6?

补充下:我理解 python 的面向对象方法


11-12 补充:
感谢楼下各位的回复。

既然 ES6 增加了「类」的概念。单单从学习的角度来说,为什么不能像其他的编程语言那样直接从「类」开始学习呢?如果你有其他语言面向对象的经验,那么也可以避免之前原型链,继承的繁琐,和难以理解的坑。

我个人武断的觉得,class 的出现标志着之前那一套原型继承的方案已经过时了
看了各位的回答,前几天老老实实学习了原型链及继承的基本原理,厘清楚了一下概念。然后再回过头来学习 ES6 的类时觉得更加的通透,觉得理所当然。

谢谢

阅读 9.6k
9 个回答

ES6,或者说typescriptcoffescript(本质上不一样,但从使用体验来讲是差不多的)这种,虽然写起来很爽。

但是还是有很多缺点的(至少在目前主流浏览器不支持的情况):

  1. 需要用babeltsc(typescript)转换,需要配置webpack或类似工具,还要确保这些转换器没有什么奇怪的坑,最好要研究下他的转换过程。

  2. 目前还有大部分的js库是用的es5的语法,指不定什么时候需要研究参考下,更别说还需要维护那些原来用es5写的项目了(当然如果有时间的话,你可以用es6重构下,但也是需要花费不少时间的,特别是需要做很多单元测试,保证项目没有改出问题)。

当然如果是你主导的新项目,或者说是那种比较新的项目,当然是推荐ES6来写,毕竟更爽,改进了很多,写起来也更加方便。但是在ES5没完全淘汰之前,ES5还是必须看的,况且你要学的ES6也是大部分从ES5改进过来的。

作为一个前端开发人员,你觉得浏览器都支持 ES6 吗?

或者你只开发 ECS 6,然后用 NodeJS - Babel 转?中间出现坑你如何解决?

ES6拒绝了你的拥抱,并向你扔出一本 《JavaScript权威指南》。

学JS基础很重要,新的东西只是在帮你更方便的编程,地基打不好,楼就建不高。

有必要,只有你明白语言的前世今生你才能够创新。

当然有啦。你不懂ES5的原型,你怎么可能理解ES6的class呢?ES6的class就是语法糖而已啊。

即使你懂其他语言的面向对象,也还是要懂JavaScript的原型继承。因为JavaScript里的原型继承,和其他语言中的继承不太一样。

es6的class的本质还是原型继承。即使现在你认为你可以跳过原型,把class当成类来理解。但你迟早还是会发现,你绕不开原型继承。

等你需要进阶提高了,不懂ES5实现,如何能hold住ES6的class实现?

把ES5弄懂,什么ES6和ES7,只不过是强化版的语法而已。

phthon?还是python?class毕竟只是语法糖而已,基础还是很重要的

说句不那么夸张点的。

你学会了es6之后才发现,那么多特性其实除了几个核心特性外,其他的几乎都是语法糖。

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