Javascript 理解API和DOM的困难

Javascript 理解API和DOM的困难,javascript,api,dom,browser,interface,Javascript,Api,Dom,Browser,Interface,因此,我正在阅读有关API的文章,以了解更多有关API的信息,通常的定义似乎是“API是一个接口,您可以通过它访问其他人的代码,或者其他人的代码可以通过它访问您的代码,”并且经常会得到一些例子来澄清这一点,比如Yelp使用Google或Apple Maps API访问地图,而不需要知道任何关于方法本身实现的信息 但后来我开始单独阅读DOM(文档对象模型),它也被定义为API。然而,基于前面的定义和API示例(Yelp),我发现很难喜欢..以同样的方式将其视为API。我知道web浏览器实现DOM,

因此,我正在阅读有关API的文章,以了解更多有关API的信息,通常的定义似乎是“API是一个接口,您可以通过它访问其他人的代码,或者其他人的代码可以通过它访问您的代码,”并且经常会得到一些例子来澄清这一点,比如Yelp使用Google或Apple Maps API访问地图,而不需要知道任何关于方法本身实现的信息

但后来我开始单独阅读DOM(文档对象模型),它也被定义为API。然而,基于前面的定义和API示例(Yelp),我发现很难喜欢..以同样的方式将其视为API。我知道web浏览器实现DOM,但每个web浏览器都有自己的DOM实现,这与您谈论Google Maps API时的情况不同,我认为Google Maps API有自己的单一实现,然后被其他应用程序使用。就像…对于一个特定的web浏览器,web浏览器在提供API方面就像“Google”,但谁扮演…Yelp?是网页吗?程序员?语言(Javascript)


我希望我的示例不会太混乱,我只是想了解DOM与谁有“Google Map API Yelp”类型的关系。

我想说,创建JavaScript或HTML文件的人就是“Yelp”,而“Google”部分就是浏览器。这里的区别是W3C,它标准化了DOM API。如果不是W3C,那么每个浏览器供应商都可以公开自己的DOM集——这一场景在过去的一定程度上确实存在。多亏了W3C,我们现在可以处理不同浏览器之间相当一致的API

就好像谷歌和必应决定标准化他们的地图API。最终的结果是Yelp可以创建一个可以与Google或Bing地图一起使用的客户端。它仍然是一个API,即使是由不同的源实现的


我希望这能有所帮助。

我想说,创建JavaScript或HTML文件的人都是“Yelp”,而“Google”部分则是浏览器。这里的区别是W3C,它标准化了DOM API。如果不是W3C,那么每个浏览器供应商都可以公开自己的DOM集——这一场景在过去的一定程度上确实存在。多亏了W3C,我们现在可以处理不同浏览器之间相当一致的API

就好像谷歌和必应决定标准化他们的地图API。最终的结果是Yelp可以创建一个可以与Google或Bing地图一起使用的客户端。它仍然是一个API,即使是由不同的源实现的


我希望这会有所帮助。

API是应用程序用于与其他服务和/或数据结构交互的函数和数据结构的规范

例如POSIX操作系统API(用于访问文件的
open()
read()
,用于管理进程和程序的
fork()
exec()
等函数)。POSIX指定了API,它允许程序员通过使用这些函数编写可移植程序,这些程序将运行在许多不同的操作系统上

另一个例子是web浏览器中的DOM API。DOM是一个抽象的数据结构,DOM API是像
getElementById()
appendChild()
这样的方法,它们作用于数据结构,然后浏览器会显示这些数据结构。每个浏览器都有自己的API实现,允许Javascript应用程序在不同的浏览器上运行


API本身并不特定于实现。但是,如果服务提供商有一个库来使用他们的服务,那么API及其实现常常会被混淆。例如,要使用Stripe服务处理信用卡付款,您可以使用他们编写的Stripe API。从理论上讲,所有的支付处理器,如Stripe、PayPal、SWReg等,都可以集合起来定义一个通用的API,它们都可以实现,但目前还没有实现。

API是应用程序用来与其他服务和/或数据结构交互的函数和数据结构规范

例如POSIX操作系统API(用于访问文件的
open()
read()
,用于管理进程和程序的
fork()
exec()
等函数)。POSIX指定了API,它允许程序员通过使用这些函数编写可移植程序,这些程序将运行在许多不同的操作系统上

另一个例子是web浏览器中的DOM API。DOM是一个抽象的数据结构,DOM API是像
getElementById()
appendChild()
这样的方法,它们作用于数据结构,然后浏览器会显示这些数据结构。每个浏览器都有自己的API实现,允许Javascript应用程序在不同的浏览器上运行


API本身并不特定于实现。但是,如果服务提供商有一个库来使用他们的服务,那么API及其实现常常会被混淆。例如,要使用Stripe服务处理信用卡付款,您可以使用他们编写的Stripe API。从理论上讲,所有支付处理器,如Stripe、PayPal、SWReg等,都可以聚集在一起定义一个通用的API,它们都可以实现,但它们目前还没有这样做。

API的定义并不区分是否有一个或多个实现。考虑到Bing可以提供自己的谷歌地图API的实现,这样一个应用程序可以很容易地在谷歌和Bing地图之间切换数据。我假设像GoogleMapsAPI这样的东西必须由Google自己来实现,而不像DOM那样