优步和原型之间的Javascript差异

时间:2015-01-14 11:07:41

标签: javascript

我在javaScript中比较新,我正在做一些继承。我以为我知道原型是什么,但后来我遇到了超级方法。现在我不知道这两者之间的区别。 我知道优步就像java中的超级一样。但是原型是令我烦恼的东西。 如果你能给我一些使用这两个的简单例子,我会非常感激。

1 个答案:

答案 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