Как var “jQuery” является функцией и объектом?

Например, когда Вы используете jQuery('someDiv');, это - функция, но можно также использовать jQuery.ajax(...);.

Как это возможно?

13
задан 27 April 2010 в 20:22
поделиться

2 ответа

В JavaScript функции сами по себе являются объектами.

var x = function () {};
x.foo = "bar";

console.log(x.foo); // bar

РЕДАКТИРОВАТЬ:

Чтобы добавить к этому:

var x = function () {
    return 'foo';
};
x.bar = function () {
    return 'baz';
};

Итак, теперь:

console.log(x()); // foo
console.log(x.bar()); // baz
33
ответ дан 1 December 2019 в 19:49
поделиться

Я считаю, что в примере .ajax используется архитектура подключаемого модуля jQuery. Я думаю, что возможности AJAX в jQuery - лишь один из многих плагинов, которые вы могли бы использовать.

Символ '$', который использует see, также является псевдонимом для вызова jQuery.

Последнее наблюдение jQuery определяется как (из jquery-1.4.2.js):

var jQuery = function( selector, context ) {
        // The jQuery object is actually just the init constructor 'enhanced'
        return new jQuery.fn.init( selector, context );
    },

, а Ajax выглядит так:

jQuery.extend({
...some other goodness...
ajax: function( origSettings ) 
...more goodness...
});
0
ответ дан 1 December 2019 в 19:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: