我在javaScript中比较新,我正在做一些继承。我以为我知道原型是什么,但后来我遇到了超级方法。现在我不知道这两者之间的区别。 我知道优步就像java中的超级一样。但是原型是令我烦恼的东西。 如果你能给我一些使用这两个的简单例子,我会非常感激。
答案 0 :(得分:11)
uber
只是道格拉斯·克罗克福德在他的JavaScript继承示例中创建的 sugar 方法,它可以帮助devoloper处理JavaScripts原型继承非常非常灵活的特性。 / p>
本机JavaScript中不存在此方法。
他详细解释了他使用的 sugar 方法here。
在他的示例中,他将uber
方法定义为访问方法的父实现的辅助方法。
我们假设您有一个“类”(我使用这个术语来简化示例;严格说来,JavaScript中没有类)Human
具有walk
方法。如果您现在在Infant
课程中“扩展”此课程,则可以覆盖walk
,使婴儿只能爬行,因为它无法行走。
这显然不是一个很好的例子,但我希望你明白这一点。
在这种情况下,您可以使用Douglas Crockfords uber
方法访问Human
“类中walk
的{{1}}实现。”
比较JavaScripts本地Infant
对象和Douglas Crockfords prototype
方法没有任何意义,因为两者都有完全不同的用途。
如果您想了解有关JavaScripts uber
的更多信息,可以查看this question。