这里,在框架类别下提到了jquery: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks
jquery是javascript库还是框架?
答案 0 :(得分:155)
图书馆。根据{{3}},我同意。
框架通常会强制某种方式实现解决方案,而jQuery只是一种工具,可以更轻松地实现您想要做的事情。
答案 1 :(得分:28)
答案 2 :(得分:18)
当然,这是一个javascript库。但是关于成为一个框架,我只是认为它不是一个框架。看看wikipedia definition of software-framework:
它是提供定义的软件库的集合 应用程序编程接口。
jQuery只是一个库。之后它说:
框架包含将它们与普通库分开的关键区别特征:
- 控制反转 - 在一个框架中,与库或普通用户应用程序不同,整个程序的控制流程不是由调用者决定的,而是由框架决定的。
醇>
所以,我认为这不是一个框架。
答案 3 :(得分:6)
- 一个库 - 一组在编写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 Framework,JavaScriptMVC和sammy.js等等。
还有其他基于jQuery构建的库,如jQuery UI
在定义库与框架的对比时,有些似乎是语义,但这些示例有助于为我绘制线条。
答案 6 :(得分:0)
如果我们谈论控制反转,几乎每个人都在讨论,那么jQuery就是一个框架。
它有IOC,例如当我们编写函数 $(document).ready {} 时......它是调用此方法的容器,我们只需将代码放在大括号内。我们不是这种方法的调用者,因此"控制反转"
这样jQuery就是一个框架。