Javascript jQuery如何使jQuery对象同时成为函数和对象属性?
很长一段时间以来,我一直在想jQuery如何既可以是函数又可以是对象属性 您可以像函数jQuery(…)一样使用它,也可以像属性jQuery.ajax(…)一样使用它Javascript jQuery如何使jQuery对象同时成为函数和对象属性?,javascript,jquery,function,object,properties,Javascript,Jquery,Function,Object,Properties,很长一段时间以来,我一直在想jQuery如何既可以是函数又可以是对象属性 您可以像函数jQuery(…)一样使用它,也可以像属性jQuery.ajax(…)一样使用它 如何在Javascript中实现这样的功能?因为在Javascript中,函数是可以具有属性的对象: function test() { ... } test.a = function () { ... }; test.a(); // totally valid 函数是javascript中的对象。所以你可以有你的主要功能 v
如何在Javascript中实现这样的功能?因为在Javascript中,函数是可以具有属性的对象:
function test() { ... }
test.a = function () { ... };
test.a(); // totally valid
函数是javascript中的对象。所以你可以有你的主要功能
var $ = function() { alert('wat'); }
然后扩展它
$.fadeTo = function() { alert('fadeto'); }
我认为,就代码概念而言,jQuery到底是什么的概念相当混乱。我浏览了这个链接,它以非常简单的方式解释了jQuery体系结构:
因此,简言之,$是名为“jQuery”的JavaScript函数的别名,而使用点符号(如$.trim())调用的方法是“JavaScript”jQuery函数上的静态方法。请注意,函数继承自JavaScript中的对象,因此函数是JavaScript中的对象。mhm,我明白了。。。Javascript类没有静态/动态方法的概念?@SBSTP:Javascript根本没有类,它是一种原型语言,而不是基于类的语言。它有构造函数。构造函数创建对象。啊,我没有意识到这一点。问题:在您的示例中,
test.a
可以在初始的function test(){…}
声明中定义,还是必须test.a
单独声明才能在test()之外访问?换句话说,是否可以从test(){…}
声明中定义a
属性,以便从test()
外部仍然可以访问该属性?我似乎在其他任何地方都找不到答案。