Как jQuery делает объект jQuery одновременно функцией и свойством объекта? - PullRequest
13 голосов
/ 16 августа 2011

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

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

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

Ответы [ 3 ]

15 голосов
/ 16 августа 2011

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

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

, а затем расширить ее

$.fadeTo = function() { alert('fadeto'); }
9 голосов
/ 16 августа 2011

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

function test() { ... }

test.a = function () { ... };
test.a(); // totally valid
2 голосов
/ 25 июля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...