【问题标题】:Object oriented keywords in JavascriptJavascript中的面向对象关键字
【发布时间】:2016-02-18 16:35:01
【问题描述】:

我可以看到接口、扩展、声明关键字已在 java 脚本库中使用

lib.d.ts

正如我们在 Java 中使用的那样。

例如

接口 HTMLObjectElement 扩展 HTMLElement, GetSVGDocument { }

当我们想将 oo 设计模式应用于 Node.js 等 Javascript 应用程序时,为什么我们不能使用这些关键字

【问题讨论】:

  • 对于初学者来说,.d.tsTypeScript 定义。此外,通过阅读一些有关 ES6 的内容,您会发现其中许多功能都被引入了。
  • 因为 JavaScript 不是经典的 OO 语言。它使用prototypal inheritance
  • Javascript 是基于原型的语言,而不是面向对象的语言。这就是为什么我们不能使用它。
  • 我不明白为什么我投了这么多反对票?
  • 因为这个问题主要是关于主观观点。 “为什么语言 X 不做 Y?”除了“因为它没有”之外,通常没有什么好的答案。

标签: javascript


【解决方案1】:

这是一个typescript 类型定义文件。

为了使用相同的关键字,您需要在 Typescript 上编写 Node.js 应用程序,并拥有将其转换为有效 javascript 的编译器。

【讨论】:

  • 请注意,可以在 Node 环境中使用新的 ES6 关键字,例如 class
  • 是的,我也打算推荐 ES6,但我不太熟悉它,快速搜索显示我似乎不支持“接口”。所以我去找打字稿答案。但是一个非常有效的注释!
  • @Marty 是的,ES6 有一些类似 OO 的语法糖。也就是说,在某种程度上不要看起来太近。
  • @Phylogenesis 正如你所说,重要的是要注意,虽然我提到了像 class 这样的关键字存在于 ES6 中,但这并不意味着它们以传统方式工作。它们仍然产生典型的 JavaScript“继承”。
猜你喜欢
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多