Я играю с кишками jQuery, чтобы понять, как это работает. Я это понимаю по большей части, но мне кое-что интересно.Объект jQuery и объект окна
В JQuery, у нас есть это на самом деле создать объект JQuery (по линии 60
):
jQuery = function(selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context, rootjQuery);
},
Метод init
длинный, так что я избавлю вас от копирования и вставки (если вы проверите источник хочу посмотреть, это на линии 123
). Этот метод доступен через jQuery.prototype
. По сути, он рассматривает аргументы и принимает некоторые решения о выборе элементов.
Далее по сценарию (на линии 19174
) мы имеем это:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
Что интересно, потому что комментируя эту линию еще делает $
доступной в глобальном объекте.
Зачем это необходимо? Кажется, что функция jQuery
, которая вызывает метод init
, создает глобальное значение $
в любом случае. Я тестировал это на Chrome, Firefox и Safari, и они могут жить без линии Expose jQuery to the global object
.
Это для старых браузеров и для обратной совместимости ???
Уверены ли вы? Потому что, я прокомментировал строку, и это вызывает ошибку, когда я предупреждаю '' '. http://jsfiddle.net/RBG7P/ –
Вы пробовали в браузерах локально? – Sethen
Я не выбрал ни одну библиотеку и jsfiddle, как я должен тестировать локально? –