代码之家  ›  专栏  ›  技术社区  ›  user216441

“jquery”是如何var a函数和对象的?

  •  13
  • user216441  · 技术社区  · 14 年前

    例如,当您使用 jQuery('someDiv'); ,这是一个函数,但您也可以使用 jQuery.ajax(...); .

    怎么可能?

    2 回复  |  直到 14 年前
        1
  •  33
  •   Matt    14 年前

    在JavaScript中,函数本身就是对象。

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

    编辑:

    要添加到此内容,请执行以下操作:

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

    所以现在:

    console.log(x()); // foo
    console.log(x.bar()); // baz
    
        2
  •  0
  •   Steven Dorfmeister    14 年前

    我相信.ajax示例正在使用jquery插件架构。我认为jquery的Ajax功能只是您可以使用的众多插件之一。

    使用see的“$”也只是用于调用jquery的别名。

    最后一个观察jquery定义为(来自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 );
        },
    

    Ajax看起来:

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