开发者

How is the "jQuery" var a function and an object?

For example, when you use jQuery('someDiv');, it's a function, but you can als开发者_运维知识库o use jQuery.ajax(...);.

How is it possible?


In JavaScript, functions themselves are objects.

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

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

EDIT:

To add onto this:

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

So now:

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


I believe the .ajax example is utilizing the jQuery plug-in architecture. I think the AJAX capabilities of jQuery are just one of the many plug-ins you could use.

The '$' that use see is also just a alias for calling the jQuery.

One last observation jQuery is defined as (from the 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 );
    },

and Ajax looks like:

jQuery.extend({
...some other goodness...
ajax: function( origSettings ) 
...more goodness...
});
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜