Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
uber和prototype之间的Javascript差异_Javascript - Fatal编程技术网

uber和prototype之间的Javascript差异

uber和prototype之间的Javascript差异,javascript,Javascript,我对javaScript比较陌生,我做了一些继承。我以为我知道什么是原型,但后来我遇到了优步方法。现在我不知道这两者之间的区别。 我知道uber就像java中的super,仅此而已。但原型是困扰我的东西。 如果你能给我一些使用这两种方法的简单示例,我将非常感激。uber只是道格拉斯·克罗克福德在他的JavaScript继承示例中创建的一种糖类方法,这将有助于开发人员处理非常灵活的JavaScripts原型继承 本机JavaScript中不存在此方法。 他详细解释了他使用的糖法 在他的示例中,他

我对javaScript比较陌生,我做了一些继承。我以为我知道什么是原型,但后来我遇到了优步方法。现在我不知道这两者之间的区别。 我知道uber就像java中的super,仅此而已。但原型是困扰我的东西。
如果你能给我一些使用这两种方法的简单示例,我将非常感激。

uber
只是道格拉斯·克罗克福德在他的JavaScript继承示例中创建的一种糖类方法,这将有助于开发人员处理非常灵活的JavaScripts原型继承

本机JavaScript中不存在此方法。

他详细解释了他使用的糖法


在他的示例中,他将
uber
方法定义为访问方法父实现的助手方法

让我们假设您有一个“类”(我使用这个术语简化示例;严格来说,JavaScript中没有类)
Human
,它有一个
walk
方法。如果您现在在
婴儿
类中“扩展”该类,您可以覆盖
行走
,使婴儿只能爬行,因为它不能行走

这显然不是一个很好的例子,但我希望你能理解这一点

在这种情况下,您可以使用Douglas Crockfords
uber
方法访问
婴儿
类中
行走
人类
实现


比较JavaScripts native
prototype
object和Douglas Crockfords
uber
方法毫无意义,因为两者的用途完全不同


如果你想了解更多关于JavaScripts
prototype
的信息,你可以看一看。

据我所知,JavaScript中没有
uber
方法,除非你使用一个将此方法添加到对象的库。你在用图书馆吗?我在用。它可能在其中定义。但我还是不知道区别,因为我知道优步是什么。这只是一个指向父对象的指针。我已经添加了一个关于道格拉斯·克罗克福德(Douglas Crockford)在他的继承教程中使用的
uber
方法的答案,假设您的意思是这样的。这似乎是最流行的例子。你到底是在哪里发现uber的?我不确定Crockford是学习prototype的最好方法,因为我从未见过他正确地实现“经典继承”。下面的答案涵盖了构造函数和原型:希望有帮助