javascript - "JavaScript APIs"是什么意思?

标签 javascript jquery api

我对 API 的理解仅限于向某个 URL 发送 ajax 调用,然后对返回的数据执行某些操作。例如,我可以使用烂番茄 API 中的数据来搜索和操作烂番茄中的数据,例如给定电影的电影评论和元数据。

我感到困惑的是,为什么它是一个 API,同时 jQuery 也被认为是一个 API(许多其他“JavaScript API”也是如此)。例如,我似乎没有来回发送请求来使用 jQuery,因为我可以在本地文件结构中包含 .js 文件。这和它提供给我的内置方法有关系吗?

如果是这样,库和 API 之间有什么区别?

这是维基百科的定义:

An application programming interface (API) specifies how some software components should interact with each other. In addition to accessing databases or computer hardware, such as hard disk drives or video cards, an API can be used to ease the work of programming graphical user interface components.

http://en.wikipedia.org/wiki/Application_programming_interface

这在 JavaScript 中意味着什么?就我如何使用它而言,这意味着什么?有人能花点时间用实用(非抽象)的外行术语解释一下吗?

最佳答案

API 只是一个发布的合约

它定义了可用的操作,以及它们各自的输入输出(如果存在)。

无论您是调用 Web 服务、JavaScript 函数还是使用二进制文件,都没有关系。他们都有一些正式发布的契约(Contract),您可以通过契约(Contract)进行互动。

因此,虽然 Web 服务具有非常严格的契约,因为公开公共(public)方法,但 jQuery 定义了一组旨在供外部公共(public)使用的方法。

示例:

var MyObject = function(){
   var _state = "I'm private";

   //Not intended for public consumption
   this._prefix = "Hello, my name is ";

   //Part of formal API
   this.name = "Johnson";
};

// Part of formal API
MyObject.prototype.sayHello = function(){
   console.log(this._prefix + this.name);
};

var obj = new MyObject();
obj.name = "Josh";
obj.sayHello(); // "Hello, my name is Josh"

在上面的示例中,该对象有一个供使用的公共(public) API,但它也有一些您可以操作但无意操作的成员。可能有很多原因让你的对象中包含这样的东西,但弄乱它们可能会产生意想不到的后果。

只要作者维护外部公共(public)合约(API),他就可以自由移动、重命名和更改实现细节。

再说一遍,API 是一份记录在案的契约(Contract)...仅此而已。

关于javascript - "JavaScript APIs"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266863/

相关文章:

javascript - 启动和停止计时器 : using 1 function for multiple instances

javascript - 如何将我的 + 按钮移动到我的网页右侧?

javascript - 如何使用 .each() 的 jQuery 的更多 div?

jquery - 从 iPad 上的 Veeva iRep 幻灯片链接 iOS 应用程序

rest - 通过微服务传播错误的良好实践

javascript - 使用 JavaScript 在不暴露客户端 secret 的情况下搜索四方位

javascript - 如何链接到单独应用程序中的 View ?

javascript - 跨域 jquery 1.6.2 ajax 调用尝试从同一域调用

api - 让谷歌地图以地理位置为中心并适当放大

javascript - 内容安全策略如何真正防止攻击?