可能重複:
Framework vs. Toolkit vs. LibraryJavaScript框架和庫之間有什麼區別?
我想知道什麼是一個JavaScript框架,通過使用一些例如庫之間的差異。
例如,jquery,backbone.js和jasmine是JavaScript框架還是庫?爲什麼?
你能提供使用句子JavaScript框架和圖書館的一些例子Don't call Us, We'll call You.
可能重複:
Framework vs. Toolkit vs. LibraryJavaScript框架和庫之間有什麼區別?
我想知道什麼是一個JavaScript框架,通過使用一些例如庫之間的差異。
例如,jquery,backbone.js和jasmine是JavaScript框架還是庫?爲什麼?
你能提供使用句子JavaScript框架和圖書館的一些例子Don't call Us, We'll call You.
即使壽這個問題是非常主觀的,我對這兩個人的看法是這樣的:
框架 :這描述了一個給定的結構,你應該如何呈現你的代碼。非常像代碼模板,沿着一些助手,構造函數等來解決/簡化特定問題或使您的架構「按順序」。例如,「Backbone」,「requireJS」,「socketIO」。
圖書館:是一個完整的工具包,它在高度抽象不同的層,像瀏覽器/ DOM模型/等同樣是一個很好的工具,它提供了大量的工具和整潔的東西的工作,這在一般情況下,簡化您的編碼體驗。例如 「jQuery的」, 「MooTools的」, 「YUI」
一個JavaScript庫是預先編寫的JavaScript庫,它允許對基於JavaScript的應用程序更容易開發。
和一些JavaScript庫(如YUI)被分類爲框架,因爲它們展現了在通用JavaScript庫中找不到的全堆棧功能和屬性。
JavaScript是一種腳本語言。
JQuery是一個JavaScript庫,它處理許多常用功能,並處理Internet Explorer和符合標準的瀏覽器之間的差異。在創建基於Web的應用程序時,您可以使用它來減少工作量。
一個框架封裝了通用的應用程序功能,允許開發人員專注於其應用程序所特有的部分。這意味着開發人員在各種事情發生時編寫由框架調用的代碼片段;例如:backbone.js
或jasmine
。 庫是通常由應用程序調用以執行任務的代碼包,如DOM操作或HTTP請求。例如:jQuery
。
我jAndy同意,在我看來框架爲了解決一個具體問題規定的結構在你的代碼和庫是一個通用的一套幫助您在各種任務的工具,而不必解決同樣的問題。
在這方面:
jQuery
是一個庫,因爲它抽象了很多瀏覽器不兼容的,但規定了你的代碼沒有結構。underscore.js
是一個庫,因爲它是處理數據結構和其他好東西的實用程序集合。backbone.js
是一個框架,因爲它構成了您的前端代碼以匹配MVC模式。Jasmine
是一個框架,因爲它構成了你的代碼,所以你可以很容易地做BDD。關於你的建議的例子,框架適合don't call us
範式,因爲他們大多徵收碼流(某種inversion of control)。你打電話給圖書館,他們不會打電話給你的代碼。
這是一個主觀意見,所以採取這樣的。
+1感謝您的答案,這是非常明確的,並回應我的問題。 – js999 2012-07-20 09:04:44
我不相信有一個真正的答案。他們有些重疊的條款。 – Peter 2012-07-20 08:53:17
通常,「框架」意味着[特殊]執行上下文,而「庫」只是一些使用的外部API。然而,通過這個定義,然後一個jQuery插件將使用「jQuery框架」..在任何情況下,不投票結束,因爲這是一個軟性大多開放式問題。 – 2012-07-20 08:53:28
http://chat.stackoverflow.com/transcript/message/4603815#4603815另請參閱http://en.wikipedia.org/wiki/Software_framework – Esailija 2012-07-20 08:58:00