【问题标题】:Polymorphism implementation difference between c++ and javaScriptc++和javaScript的多态实现区别
【发布时间】:2017-01-17 05:31:26
【问题描述】:

我来自 c++ 背景,现在正在学习 javaScript。我无法从 javScript 的角度理解多态性。我了解什么是多态性,它是如何在 c++ 中实现的,以及它是如何在 javaScript 中实现的

多态性:不同类型的对象在运行时响应方法调用,用户不知道对象的类型。

在 c++ 中的实现:我们创建一个基指针并将派生类的对象分配给它,然后我们使用该指针进行函数调用。:

javaScript 中的实现:我们在主函数对象中创建一个函数,然后我们在从主函数对象继承的函数对象中创建另一个同名的函数,并将它们添加到一个数组中,然后执行该数组

我的疑问是在 JavaScript 中我们没有根据父对象进行调用。我的意思是我们在 C++ 中有基本指针,并使用它来进行特定的函数调用。我不确定我是否可以说清楚,但如果有人可以帮助我,我将非常感激

【问题讨论】:

标签: javascript c++ arrays polymorphism


【解决方案1】:

C++ 是“基于类”的 OOP,而 JS 是“基于原型”的 OOP。 而且,JS 是一种函数式编程语言(参考:@Cheers 和 hth 的评论。)

这就是它们不同的原因。当您了解基于原型的 OOP 时,您就会明白

有一本书叫《Secrets of the JavaScript Ninja》,我从中学到了很多JS。

【讨论】:

  • “JS 是一种函数式编程语言”,不,不是。
  • 我不确定你想表达什么。函数式语言基于不可变状态的思想。 JavaScript(和 C++)基于变异状态,即赋值。您可以在 JavaScript 和 C++ 中进行函数式编程或至少是函数式编程,但 JavaScript 更好地支持这一点。我在 Wikipedia (en.wikipedia.org/wiki/…) 上找到了一些关于 JavaScript 函数式编程的讨论。
  • 谢谢,我可以参考您的评论更新我的帖子。我认为你的评论比我更能解释“功能性的东西”
  • 当然可以,但我仍然不确定您想说什么。 :)=
  • 没有一个 cmets 澄清了我的疑问
猜你喜欢
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 2012-09-28
  • 2011-08-10
  • 2018-11-08
  • 2016-04-18
相关资源
最近更新 更多