gpt4 book ai didi

javascript - 伪类继承相对于函数继承(工厂函数)有哪些技术优势?

转载 作者:数据小太阳 更新时间:2023-10-29 05:37:17 27 4
gpt4 key购买 nike

替代标题:“为什么这么多流行的 JavaScript 库使用伪类继承而不是函数继承(工厂函数)?”

JavaScript: The Good Parts 建议使用工厂函数,以便您获得方法和属性的真正隐私。这是有道理的,所以我想知道为什么这么多现代 JS 库仍然使用伪类继承(使用 new 关键字)。与工厂功能相比,走这条路有一些技术优势吗?如果不是,是否只是一种风格选择?

编辑:这不是基于意见的帖子。我不是在问哪个更好,我是在问伪经典继承相对于函数式继承有哪些技术优势,以了解为什么有人会选择这种风格。

编辑 2:我可以看到伪经典的几个优点:

  1. 当您console.log一个原型(prototype)的实例时,它会向您显示它所实例化的对象的名称。
  2. 在相关说明中,您可以使用 instanceof 查看实例是否来自特定对象,这对于工厂函数是不可能的。

最佳答案

让我们专注于您的示例。我不认为工厂功能是必需的,尽管出于您所说的原因它们可能是首选。例如,您可以使用显示模块模式将信息与新信息一起隐藏。

这是对该模式的合理解释的链接。 http://jargon.js.org/_glossary/REVEALING_MODULE_PATTERN.md

我认为在这种情况下揭示模式与工厂相比,这实际上只是对一种模式的偏好。人们的信息很可能是孤立的,不同的理论在不同的地方占主导地位。您只听到了辩论的一部分,并且想知道为什么每个人都没有在 Y 上做 X,他们主要是为了满足类似的担忧。

在静态类型语言中,您会发现大量避免使用 new 的情况,在这些语言中,由于强类型化,依赖性变得更加令人担忧。您还会从函数式程序员、过程式编程和 OOP 那里得到不同的答案。我认为 javascript 的一个有趣方面是它可以吸引各种语言背景的人。

我也确实认为人们在 javascript 方面更加强调组合而不是继承。 React 是这种倡导的一个很好的例子

关于javascript - 伪类继承相对于函数继承(工厂函数)有哪些技术优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52417050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com