【问题标题】:Can use all oops feature in NodeJs/Javascript [closed]可以使用 NodeJs/Javascript 中的所有 oops 功能 [关闭]
【发布时间】:2015-09-11 05:56:58
【问题描述】:

我非常熟悉一些服务器语言,如 PHP、JAVA 等。现在我开始使用 NodeJs。这是我的一些问题,我们可以在 NodeJs 中使用 OOPS 功能。即:-

  • 封装
  • 继承
  • 多态性

【问题讨论】:

  • 简单的答案是肯定的。但是,对于这些,您必须编写自己的代码以使其行为与其他 OO 语言相匹配。
  • 感谢@AdityaParab 的回复,请您详细说明一下。
  • 我刚刚发布了一个答案,请阅读。 :)
  • 请注意,这些问题与 NodeJS 的关系并不比在任何其他上下文中与 JavaScript 的关系更大。您还可以使用 TypeScript 之类的方式更轻松地使用 JavaScript 实现某些编程风格。
  • 谢谢@Marty..,TypeScript 是我正在寻找的解决方案..

标签: javascript node.js oop


【解决方案1】:

封装在任何方面都不是 OOP 独有的,并且可能在每一种语言中都是可能的。我会说,这更像是一种设计选择。

JavaScript 具有原型继承。它与类继承有点不同,但可以完全相同的方式使用。可以说它实际上更灵活。

多态性...好吧,既然有继承,那就是多态性。您可以创建“类”,从它们继承并覆盖它们的行为。但是由于该语言是动态类型的,所以很难谈论您从 Java 等语言中所知道的多态性。您可能想了解的一个概念是鸭式打字。

【讨论】:

  • 加 1 用于提及鸭子类型。大多数人并不真正了解这个概念。
【解决方案2】:

当然,

对于Encapsultation,阅读更多关于闭包的信息

对于Inheritance,阅读更多关于`原型

对于Polymorphism,没有直接的多态结构。

您可以通过不为函数指定任何参数来实现函数重载,在函数内部,您可以使用argumets 变量查看传递给函数的参数数量,然后使用if/elseswitch 等结构来更改函数的行为。

通过原型继承可以轻松实现函数覆盖。

不知道算子是否真的可以超载。

【讨论】:

  • 你通过给出这个有用的答案来清除我的概念。谢谢
猜你喜欢
  • 2021-06-11
  • 1970-01-01
  • 2018-02-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
相关资源
最近更新 更多