super 和原型(prototype)之间的Javascript区别

标签 javascript

我是 javaScript 的新手,我正在做一些继承。我以为我知道原型(prototype)是什么,但后来我遇到了 super 方法。现在我不知道这两者之间的区别。 我知道 uber 就像 java 中的 super,仅此而已。但是原型(prototype)是困扰我的事情。 如果您能给我一些使用这两者的简单示例,我将不胜感激。

最佳答案

uber只是 Douglas Crockford 在他的 JavaScript 继承示例中创建的一个方法,在使用 JavaScript 原型(prototype)继承的非常非常灵活的特性时,它应该有助于开发人员。

native JavaScript 中不存在此方法。

他详细解释了他使用的方法here .


在他的示例中,他定义了 uber方法作为辅助方法来访问方法的父实现。

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

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

在这种情况下,您可以使用 Douglas Crockfords uber访问Human的方法实现walkInfant “类”。


比较原生 JavaScript prototype对象和道格拉斯克罗克福德 uber方法没有任何意义,因为两者的用途完全不同。

如果您想了解有关 JavaScript 的更多信息 prototype你可以看看this question .

关于 super 和原型(prototype)之间的Javascript区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27941462/

相关文章:

javascript - 如何在 Phaserjs 中制作无限侧滚动背景?

javascript - 如何使用纯 JavaScript 将元素从 DOM 中的一个位置移动到另一个位置?

javascript - 如何使用react-testing-library测试material ui MenuList组件上的按键事件

javascript - 只允许有一个 babel-polyfill 实例

javascript - 复选框单击 v-for 循环内的无效数据

javascript - 从通过链接标记链接的页面中删除或禁用样式表

javascript - Sequelize v4 出错

javascript - 如果 'new' 用于实例化具有工厂函数的对象,它会改变什么吗?

JavaScript:在 Canvas 中旋转对象

javascript - 函数返回对象,但得到 'undefined'