我从来没有真正深入研究过 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)对象如何工作的充分理由:
Javascript 是一种基于原型(prototype)的语言。尽管它现在使用
class
关键字,但它是一种基于原型(prototype)的语言,而不是真正基于class
的语言。您应该知道并理解这意味着什么。较旧的代码将使用原型(prototype)赋值来编写,因此您将希望能够快速了解该代码的工作原理。
class
语法只是在幕后操纵原型(prototype),因此要充分理解class
语法的工作原理,就需要充分理解原型(prototype)的工作原理。有些编程结构有时非常有用,但
class
语法无法创建这些结构,例如您可能仍需要使用原型(prototype)的 mixins。
因此,我建议学习如何使用 prototype
对象定义对象,因为这样您就会了解 class
语法实际上在做什么。这并不是特别难。阅读一些有关原型(prototype)对象如何工作的文章,然后创建一个对象,然后使用 .prototype 对象语法从它派生,这就是您真正需要做的来掌握它。然后,我建议创建完全相同的对象定义,然后使用 class
语法并通过分配给 prototype
从中派生,然后您就可以真正看到相似之处.
关于javascript - 有什么理由不使用 ES6 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46081734/