Jquery 是一个 javascript 库还是框架?

这里,jquery 是在框架类别下提到的: Http://en.wikipedia.org/wiki/comparison_of_javascript_frameworks

Jquery 是一个 javascript 库还是框架?

91181 次浏览

一个图书馆。根据 网页,我同意。

框架通常强制以某种方式实现解决方案,而 jQuery 只是一种工具,可以使实现您想要做的事情变得更容易。

当然,它是一个 javascript 库。但是不管它是不是一个框架,我只是认为它不是一个框架。看看 软件框架的维基百科定义:

它是一个软件库的集合,提供了一个定义好的 应用程序编程接口应用程序编程接口。

JQuery 只是一个单独的库,然后它说:

框架包含将它们与普通库区分开来的关键特性:

  1. 控制反转-在一个框架中,不像在图书馆或普通的用户应用程序中,整个程序的控制流不是由调用者决定的,而是由框架决定的。

所以,我认为这不是一个框架。

我同意这里的所有答案,jQuery 本身确实是一个库,而不是一个框架。正如赛义德的回答所指出的那样,控制反转是一个关键的显著特征。然而,您可以使用 jQuery 的功能来创建自己的框架。

例如: 有些构建在 jQuery 之上的项目被定义为框架: JQuery Mobile: 一个触摸优化的 Web 框架JavaScriptMVCSammy Js等等。

还有其他构建在 jQuery 之上的库,比如 JQuery 用户界面

在定义什么是库和什么是框架时,有些看起来像是语义,但这些例子帮助我划清了界限。

根据 Angularjs 网站

  • 一个图书馆-在编写网络应用程序时有用的函数的集合。您的代码是负责的,并且在以下情况下调用库
    它认为合适,例如 jQuery。
  • 框架-Web 应用程序的一种特殊实现,其中您的代码填充了详细信息。框架负责 当它需要特定于应用程序的东西时,它就会调用你的代码。 例如 Durandal 余烬等。

框架和库不一定是相互排斥的术语。框架通常是一个库或库的集合。

严格地说,jQuery 是一个库,但在某种程度上,它确实符合软件框架的定义。尽管很多人认为 jQuery 没有足够严格地满足软件框架的定义,但事实是没有任何其他 JavaScript 框架完全满足框架的定义。

软件框架的定义特征之一是其代码受到保护,不受修改。在 JavaScript 中,情况显然并非如此。任何可以调用到客户端代码中的库或框架都是可修改的,尽管修改它们将违背最佳实践。因此,如果允许将 Bootstrap 或 AngularJS 称为框架,那么也没有理由不将 jQuery 称为框架。这个链接对 jQuery 如何满足被称为框架的标准进行了更详细的解释。

对于为什么 jQuery 更像是一个框架而不是一个库,最好的解释可能是,作为一个开发人员,您可以选择不使用任何类似于框架的功能。例如,您可以在同一行中将一个简单的 jQuery 语句与一个标准的 JavaScript 语句混合使用。AngularJS 和 Bootstrap 通常不允许您这样做。因此,准确地回答 jQuery 是否是一个框架是“它取决于您是否选择将它用作一个框架”。

如果我们谈论控制反转,几乎上面这个帖子里的每个人都在谈论它,那么 jQuery 就是一个 FRAMEWORK。

例如,当我们写函数 $(文件) . ready {}的时候,它有 IOC... 它是调用这个方法的容器,我们只需要把代码放在大括号中。我们不是此方法的调用方,因此“控制反转”

这样 jQuery 就是一个框架。