【发布时间】:2018-09-20 03:16:36
【问题描述】:
替代标题:“为什么这么多流行的 JavaScript 库使用伪经典继承而不是函数继承(工厂函数)?”
JavaScript: The Good Parts 建议使用工厂函数,以便您获得方法和属性的真正隐私。这是有道理的,所以我想知道为什么这么多现代 JS 库仍然使用伪经典继承(使用 new 关键字)。与工厂功能相比,这条路线是否有一些技术优势?如果不是,那只是一种风格选择吗?
编辑:这不是基于意见的帖子。我不是在问哪个更好,我是在问伪经典继承相对于函数式继承有哪些技术优势,以了解为什么有人会选择这种风格。
编辑 2:我可以看到伪经典的几个优点:
- 当您
console.log原型的实例时,它会向您显示实例化对象的名称。 - 在相关说明中,您可以使用
instanceof查看实例是否来自特定对象,而工厂函数无法做到这一点。
【问题讨论】:
-
大胆猜测,也许是他们不认为隐私很重要。文档显示了打算使用的方法,如果开发人员偏离了这条路线并试图对一些原本不打算改变的东西进行猴子补丁,那就是他们。也就是说,
new关键字仍然可以实现这种隐私。 -
“我在问伪经典继承相对于函数式继承有什么技术优势”
-
@Phil 好主意,谢谢!
标签: javascript inheritance prototype