How is the “jQuery” var a function and an object?

后端 未结 2 1629
孤城傲影
孤城傲影 2021-01-11 11:52

For example, when you use jQuery(\'someDiv\');, it\'s a function, but you can also use jQuery.ajax(...);.

How is it possible?

相关标签:
2条回答
  • 2021-01-11 12:19

    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
    
    0 讨论(0)
  • 2021-01-11 12:37

    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 讨论(0)
提交回复
热议问题