DOM API是面向对象的API吗?

时间:2016-08-01 17:54:38

标签: html oop dom web web-technologies

原谅我对网络技术和网络相关方面和术语缺乏了解。 this问题的一个答案是The DOM standards define interfaces that are implemented by the objects from the DOM object tree in the browser.

我真正想知道的是,interfaceimplementation objects等概念是否与我们在面向对象编程中熟悉的相同?换句话说,DOM API是面向对象的API吗?

2 个答案:

答案 0 :(得分:2)

状态和方法可以在数据结构上共存的任何语言都是面向对象的。静态类型OO语言常见的接口,类和其他功能不是语言OO的原因。此外,您可能没有JS中的interface功能,但从概念上讲,接口只是一个对象必须满足的契约,因此没有什么可以阻止在JS中记录这样的接口。

DOM API绝对是OO。实际上,DOM代表Document Object Model。换句话说,DOM是面向对象的解决方案,用于解决表示HTML和XML文档并与之交互的问题。

然而,这并不意味着它尊重像SOLID原则这样的基本面向对象原则。

答案 1 :(得分:-2)

JS中的所有内容都是一个对象,所以你问题的真正答案是肯定的。但我认为你所问的是,当你调用DOM API时,你通常得到的是DOM API的响应,而答案通常是HTML元素作为字符串。那是因为DOM只是脚本与网页连接的一种方式。

它在大多数时间输出HTML元素,您可以非常轻松地测试它 - 只需在您必须测试的某些HTML元素上使用console.log(whatever);

示例:

var newOne = document.getElementById('orange-text');
console.log(newOne);

来自DOM API的响应(通常只是HTML中的任何内容):

<p id="orange-text"">This text has an orange background because of a comparison operator</p>

现在尝试输出相同的变量,将其视为调用位置零的数组变量:

var newOne = document.getElementById('orange-text')[0];
console.log(newOne);

回复将是: undefined

答案是未定义的,因为DOM没有返回具有可以迭代的位置的对象。