jquery是javascript库还是框架?

时间:2011-08-15 08:03:11

标签: javascript jquery frameworks

这里,在框架类别下提到了jquery: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

jquery是javascript库还是框架?

7 个答案:

答案 0 :(得分:155)

图书馆。根据{{​​3}},我同意。

框架通常会强制某种方式实现解决方案,而jQuery只是一种工具,可以更轻松地实现您想要做的事情。

答案 1 :(得分:28)

答案 2 :(得分:18)

当然,这是一个javascript库。但是关于成为一个框架,我只是认为它不是一个框架。看看wikipedia definition of software-framework

  

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

jQuery只是一个库。之后它说:

  

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

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

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

答案 3 :(得分:6)

根据angularjs web site

  
      
  • 一个库 - 一组在编写Web应用程序时很有用的函数。你的代码是负责的,当它发送时它会调用库   它认为合适。例如,jQuery。
  •   
  • 框架 - Web应用程序的特定实现,其中您的代码填写详细信息。该框架负责   当它需要特定的应用程序时,它会调用您的代码。   例如,durandal,ember等。
  •   

答案 4 :(得分:4)

框架和libarry不一定是互斥条款。框架通常是一个libarry或一组库。

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

软件框架的一个定义特征是保护其代码免受修改。在JavaScript中,这显然不是这样的。可以调用到客户端代码中的任何库或框架都是可修改的,尽管改进它们是违反最佳实践的。因此,如果允许调用Bootstrap或AngularJS框架,则没有理由不能将jQuery称为框架。 This link包含有关jQuery如何满足称为框架的标准的更详细说明。

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

答案 5 :(得分:2)

我同意这里的所有答案,jQuery本身确实是一个库,而不是一个框架。正如Saeed的回答所指出的,其中一个关键的区别特征是控制反转。但是,您可以使用jQuery的功能来创建自己的框架。

示例:有一些构建在jQuery之上的项目被定义为框架:jQuery Mobile: A Touch-Optimized Web FrameworkJavaScriptMVCsammy.js等等。

还有其他基于jQuery构建的库,如jQuery UI

在定义库与框架的对比时,有些似乎是语义,但这些示例有助于为我绘制线条。

答案 6 :(得分:0)

如果我们谈论控制反转,几乎每个人都在讨论,那么jQuery就是一个框架。

它有IOC,例如当我们编写函数 $(document).ready {} 时......它是调用此方法的容器,我们只需将代码放在大括号内。我们不是这种方法的调用者,因此"控制反转"

这样jQuery就是一个框架。