jQuery如何使jQuery对象既是函数又是对象属性?

我一直想知道jQuery如何既可以是函数又可以是对象属性。

您可以像函数jQuery(…)一样使用它,您可以像使用属性jQuery.ajax(…)一样使用它

你怎么能在Javascript中实现这样的东西?

函数是javascript中的对象。 所以你可以拥有自己的主要function

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

然后扩展它

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

因为在JavaScript中,函数是可以具有属性的对象:

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

我认为jQuery在代码概念方面究竟是什么概念令人困惑。 我遇到了这个链接,它以一种非常简单易懂的方式解释了jQuery体系结构: http : //blog.mikecouturier.com/2010/02/beginning-with-jquery-solid-foundation_22.html

因此,简而言之,$是名为’jQuery’的JavaScript函数的别名,使用点符号(如$ .trim())调用的方法是’JavaScript’jQuery’函数的静态方法。 请注意,函数inheritance自JavaScript中的对象,因此函数是JavaScript中的对象。