Подтвердить что ты не робот

Как jQuery делает объект jQuery как функцией, так и свойством объекта?

Я давно задавался вопросом, как jQuery может быть как функцией, так и свойством объекта.

Вы можете использовать его как функцию jQuery (...), и вы можете использовать его как свойство jQuery.ajax(...)

Как вы можете достичь такой вещи в Javascript?

4b9b3361

Ответ 1

функции - это объекты в javascript. Таким образом, вы можете использовать свою основную функцию

var $ = function() {  alert('wat'); }

а затем продолжите его

$.fadeTo = function() { alert('fadeto'); }

Ответ 2

Поскольку в JavaScript функции являются объектами, которые могут иметь свойства:

function test() { ... }

test.a = function () { ... };
test.a(); // totally valid

Ответ 3

Я думаю, что концепция того, что именно представляет собой jQuery в терминах концепций кода, довольно запутанна. Я наткнулся на эту ссылку, которая объясняет архитектуру jQuery очень простым и простым способом: http://blog.mikecouturier.com/2010/02/beginning-with-jquery-solid-foundation_22.html

Итак, вкратце, $является псевдонимом для функции JavaScript под названием "jQuery", а методы, вызываемые с помощью точечной нотации типа $.trim(), являются статическими методами в функции JavaScript jQuery. Обратите внимание, что функция наследует объект в JavaScript, поэтому функция является объектом в JavaScript.