为什么util.inherits()的用法不鼓励?
根据Node.js文档:
注意:不鼓励使用
util.inherits()
。 请使用ES6类并扩展关键字以获得语言级别的inheritance支持。 另请注意,这两种风格在语义上是不兼容的。
https://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor
正如引用所述,你应该使用ES6 class
并extends
关键字来获得语言级别的inheritance支持,而不是utils.inherits
,这正是使用它的原因是不鼓励的:有更好的select是核心语言的一部分,就这样。
util.inherits
来自这些utils不是语言的一部分,它需要大量的样板来定义你自己的inheritance工具。
现在,语言提供了一个有效的select,而使用库本身提供的语言是没有意义的。 当然,只要你使用计划来使用ES6,这是真的 – 否则忽略这个注释并继续使用utils.inherits
。
回复你的评论:
util.inherits()如何更复杂?
这不是一个或多或less复杂的问题。 出于显而易见的原因,使用核心语言特性应该是使用特定库的替代方法的首选方式。