java - Java中有类似JavaScript的 "prototype"的东西吗?

标签 java javascript inheritance polymorphism prototype

是的,所以我对 Java 相当了解,但我从未深入研究过 JavaScript。我正在和一个懂 JavaScript 但没有学过 Java 的熟人聊天。他告诉我 JavaScript 相对于 Java 的优势在于它的功能,而不是它的用途。

具体来说,他给我讲的是“原型(prototype)”,他解释的似乎是多态和继承的概念,但没有类。这是真的吗?

我告诉这个人,看起来是这样,他告诉我原型(prototype)设计与继承或多态性完全不同,他让我研究它。在比较这两种语言方面,Google 并没有给我提供太多帮助,因此我来这里是希望找到了解这两种语言并能在这里提供一些帮助的人。

最佳答案

从某种意义上来说,它是相似的,原型(prototype)是所有继承自它的对象(也称为 JavaScript 中的函数)的父对象。 Java 继承在扩展对象以及使用接口(interface)和抽象类方面定义得更加明确。 Javascript 具有低类型抽象。一切都是函数。一切都可以随意附加属性。没有明确的继承。如果您跟踪 JavaScript 中调用的堆栈跟踪,它会从最顶层的函数开始,一直到原型(prototype),直到找到您要查找的调用。另一方面,Java 将查看直接函数或变量调用和返回。它还会向上遍历到对象父对象。 JavaScript 中的一切都基于函数,而 Java 中的所有对象都基于对象。

多态性是通过在 JavaScript 中调用 Object.create 来实现的,而不是仅在 Java 中进行扩展。 OOJS 在原型(prototype)继承与对象继承方面有很大不同。在Java中

关于java - Java中有类似JavaScript的 "prototype"的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998272/

相关文章:

Java小程序: Caller-Allowable-Codebase does not work

java - Android UTF-8 编码不起作用?

javascript - 编写函数来循环jquery样式库中的元素

java - 带有继承方法的Spring hateoas methodOn

c++ - __vfptr 表在未删除的对象中损坏

java - 如何在不知道字符串格式的情况下将字符串转换为日期?

java - 如何在java中创建实时跟踪搜索字段

javascript - Angular 允许在构造函数中继承服务声明

javascript - Jquery Json错误,来自steam的json,Access-Control-Allow-Origin

javascript - 将字符串数组转换为自定义结构