Является ли jquery библиотекой или структурой JavaScript?

Здесь jquery упоминается в категории фреймворка: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

Является ли jquery библиотекой или структурой JavaScript?

7 ответов

Решение

Библиотека. Согласно домашней странице, и с которой я согласен.

Фреймворк - это то, что обычно требует определенного способа реализации решения, тогда как jQuery - это просто инструмент, облегчающий реализацию того, что вы хотите сделать.

Конечно, это библиотека JavaScript. Но быть фреймворком или нет, я просто думаю, что это не фреймворк. Взгляните на определение википедии программного обеспечения:

Это набор библиотек программного обеспечения, обеспечивающих определенный интерфейс прикладного программирования.

А jQuery - это всего лишь одна библиотека. После этого он говорит:

Фреймворки содержат ключевые отличительные особенности, которые отделяют их от обычных библиотек:

  1. инверсия управления - в среде, в отличие от библиотек или приложений обычного пользователя, весь поток управления программой определяется не вызывающей стороной, а структурой.

Итак, я думаю, что это не рамки.

По данным сайта angularjs

  • библиотека - набор функций, которые полезны при написании веб-приложений. Ваш код отвечает, и он звонит в библиотеку, когда
    он считает нужным. Например, JQuery.
  • Фреймворки - это конкретная реализация веб-приложения, где ваш код заполняет детали. Фреймворк отвечает, и он вызывает ваш код, когда ему нужно что-то конкретное для приложения. Например, Дюрандаль, Эмбер и т. Д.

Каркас и библиотека не обязательно являются взаимоисключающими терминами. Фреймворк - это, как правило, библиотека или коллекция библиотек.

Строго говоря, jQuery - это библиотека, но, в некоторой степени, она соответствует определению программной среды. Хотя многие утверждают, что jQuery не полностью соответствует определению программной платформы, факт заключается в том, что ни одна другая JavaScript-платформа также не полностью соответствует определению инфраструктуры.

Одной из определяющих характеристик программной среды является то, что ее код защищен от изменений. В JavaScript это явно не так. Любые библиотеки или фреймворки, которые можно вызывать в вашем клиентском коде, можно изменить, хотя это будет противоречить передовым методам их изменения. Следовательно, если допустимо называть Bootstrap или AngularJS фреймворком, то нет никаких причин, по которым jQuery также нельзя назвать фреймворком. Эта ссылка содержит более подробное объяснение того, как jQuery соответствует критериям, которые следует называть структурой.

Возможно, лучшим объяснением того, почему jQuery является скорее фреймворком, чем библиотекой, является тот факт, что как разработчик вы можете отказаться от использования каких-либо его функциональных возможностей, подобных фреймворку. Например, вы можете смешать простой оператор jQuery со стандартным оператором JavaScript в одной строке. AngularJS и Bootstrap обычно не позволяют вам сделать это. Поэтому точный ответ, является ли jQuery каркасом или нет, "зависит от того, выбрали ли вы его в качестве каркаса или нет".

Я согласен со всеми ответами здесь, что сам jQuery действительно библиотека, а не фреймворк. Как указано в ответе Саида, одной из ключевых отличительных черт является инверсия управления. Тем не менее, вы можете использовать функциональность jQuery для создания собственной структуры.

Примеры: существуют проекты, построенные на основе jQuery, которые определены как фреймворки: jQuery Mobile: оптимизированная для касания веб-платформа, JavaScriptMVC и sammy.js и многие другие.

Есть также другие библиотеки, построенные на основе jQuery, такие как jQuery UI

Некоторые из них кажутся семантикой при определении того, что такое библиотека по сравнению с фреймворком, но эти примеры помогают мне подвести черту.

Если мы говорим об инверсии управления, о которой говорят почти все в вышеупомянутом потоке, то jQuery - это РАМКА.

Он имеет IOC, например, когда мы пишем функцию $ (document).ready {}... это контейнер, который вызывает этот метод, и мы просто помещаем наш код в фигурные скобки. Мы не вызывающий этого метода и, следовательно, "инверсия контроля"

Таким образом, jQuery - РАМКА.

Другие вопросы по тегам