【问题标题】:What is raw interface in javascript DOM?什么是 JavaScript DOM 中的原始接口?
【发布时间】:2019-05-26 16:50:57
【问题描述】:

据我所知,javascript 不支持多继承,但可以通过使用 mixin 来规避它。在Elementdoc 中,它说

它实现了 ParentNode、ChildNode、NonDocumentTypeChildNode 和 Animatable 的属性。

同一个 MDN 文档说 ParentNodemixinChildNode 是 'raw interface',我想知道什么是“原始接口”?我用谷歌搜索了它,但找不到任何可靠的参考。

【问题讨论】:

  • 它紧接着说:“不能创建这种类型的对象”。它就像其他语言中的抽象类。

标签: javascript dom interface


【解决方案1】:

原始接口类似于 PHP 接口,类似于 C++ 抽象基类。

这些是定义方法的类,但不提供自己的实现,因此您无法创建该类的实例。这些方法需要由子类实现。该接口的存在是为了指定这些方法的共同行为。

或者,它们可以提供方法的实现,但这些实现依赖于必须由子类提供的其他方法。

在这种情况下,ChildNode 接口由可以充当其他节点的子节点的各种类型实现:ElementDocumentTypeCharacterData

许多语言中原始接口的另一个例子是可迭代对象。通用接口允许应用程序以标准方式遍历这些对象的元素。但是每个类将有不同的方式来存储其元素并按顺序获取下一个元素。这一切都隐藏在界面后面。

【讨论】:

  • 谢谢,但他们为什么不把ChildNode 做成一个mixin,就像ParentNode 一样?
  • mixin 用于向其他类添加功能。 mixin 包含其功能的独立实现,不需要子类提供实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多