DOM API 是面向对象的 API 吗?

问题描述 投票:0回答:2

请原谅我缺乏对网络技术以及网络相关方面和术语的了解。对这个问题的一个回答指出

DOM 标准定义了由浏览器中 DOM 对象树中的对象实现的接口。

我真正想知道的是,这里的接口、实现、对象等概念与我们在面向对象编程中熟悉的概念相同吗?换句话说,DOM API 是面向对象的 API 吗?

html oop dom
2个回答
2
投票

任何状态和方法可以在数据结构上共存的语言都是面向对象的。静态类型 OO 语言常见的接口、类和其他功能并不是使语言成为 OO 的原因。另外,JS 中可能没有

interface
功能,但从概念上讲,接口只是对象必须履行的契约,因此没有什么可以阻止在 JS 中记录此类接口。

DOM API 绝对是面向对象的。实际上,DOM 代表文档对象模型。换句话说,DOM 是一种面向对象的解决方案,用于解决 HTML 和 XML 文档的表示和交互问题。

但是,这并不意味着它尊重像 SOLID 原则一样的基本 OO 原则。


-2
投票

JS 中的一切都是对象,所以你的问题的真正答案是肯定的。但我认为您要问的是,当您调用 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 没有返回具有可以迭代的位置的对象。

© www.soinside.com 2019 - 2024. All rights reserved.