javascript - 有什么理由不使用 ES6 类?

标签 javascript ecmascript-6

我从来没有真正深入研究过 Javascript。所以刚开始深入研究它,我就了解了 JS 的"new"语法:MDN

据我了解,基本上它与以前完全相同,只是构建代码的方式不同。

显然,学习技术和变体总是有原因的,但是当使用更新的语法更容易学习时,什么值得我花时间学习原型(prototype)语法

<小时/>

*我能想到的一个原因只是为了理解 ES6 之前的示例。几乎所有地方的代码都是通过原型(prototype)编写的。

最佳答案

避免使用 class 语法的唯一原因是您希望代码在不支持 class 关键字的环境中运行。而且,即使如此,如果您愿意,您也可以使用 class 编写并将代码转换为 ES5 兼容代码。

因此,确实没有理由避免使用class

<小时/>

but what would make it worth my time to learn prototyping syntax

尽管您可能使用 class 进行编码,但这里有一些充分理解原型(prototype)对象如何工作的充分理由:

  1. Javascript 是一种基于原型(prototype)的语言。尽管它现在使用 class 关键字,但它是一种基于原型(prototype)的语言,而不是真正基于 class 的语言。您应该知道并理解这意味着什么。

  2. 较旧的代码将使用原型(prototype)赋值来编写,因此您将希望能够快速了解​​该代码的工作原理。

  3. class 语法只是在幕后操纵原型(prototype),因此要充分理解 class 语法的工作原理,就需要充分理解原型(prototype)的工作原理。

  4. 有些编程结构有时非常有用,但 class 语法无法创建这些结构,例如您可能仍需要使用原型(prototype)的 mixins。

因此,我建议学习如何使用 prototype 对象定义对象,因为这样您就会了解 class 语法实际上在做什么。这并不是特别难。阅读一些有关原型(prototype)对象如何工作的文章,然后创建一个对象,然后使用 .prototype 对象语法从它派生,这就是您真正需要做的来掌握它。然后,我建议创建完全相同的对象定义,然后使用 class 语法并通过分配给 prototype 从中派生,然后您就可以真正看到相似之处.

关于javascript - 有什么理由不使用 ES6 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46081734/

相关文章:

javascript - 如何使用移动内容 block 创建基于 CSS 的动态界面?

javascript - 来自 Sprite 和视网膜证明的自定义谷歌地图标记

javascript - 导出值而不是变量

javascript - ES6 在覆盖 javascript 中的函数时访问子类的 `this`

javascript - es6类继承

ruby-on-rails - Rails 5 不会在生产环境中使用 ES6 代码预编译 JS 文件

javascript - 如何构建基于 Backbone.View 的插件,以便可以单独扩展其嵌套 View ?

javascript - bluebird 如何知道继续处理该链中的下一个 `then`?

javascript - 无法在 Protractor 中上传文件

node.js - Intellij NodeJs 6.4.0 意外 token 导出