SBSTP
SBSTP

Reputation: 3639

How does jQuery makes the jQuery object both a function and an object property?

I've been wondering for a long time how jQuery can be both a function and an object property.

You can use it like a function, jQuery(...) and you can use it like a property jQuery.ajax(...)

How can you achieve a such thing in Javascript?

Upvotes: 13

Views: 2080

Answers (3)

Sunil
Sunil

Reputation: 21406

I think the concept of what exactly is jQuery in terms of code concepts is quite confusing. I ran across this link, which explains the jQuery Architecture in a very simple and easy manner : http://blog.mikecouturier.com/2010/02/beginning-with-jquery-solid-foundation_22.html

So, in short, $ is an alias for a JavaScript function called 'jQuery', and methods invoked by using a dot notation like $.trim ( ) are static methods on the 'JavaScript 'jQuery' function. Note that a function inherits from object in JavaScript, and so a function is an object in JavaScript.

Upvotes: 2

wesbos
wesbos

Reputation: 26317

functions are objects in javascript. So you can have your main function

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

and then extend it

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

Upvotes: 15

sdleihssirhc
sdleihssirhc

Reputation: 42496

Because in JavaScript, functions are objects that can have properties:

function test() { ... }

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

Upvotes: 9

Related Questions