我一直想知道jQuery如何既是函数又是对象属性。
你可以像函数jQuery(...)一样使用它,你可以像使用属性jQuery.ajax(...)
一样使用它如何在Javascript中实现这样的功能?
答案 0 :(得分:15)
函数是javascript中的对象。所以你可以拥有主要功能
var $ = function() { alert('wat'); }
然后扩展它
$.fadeTo = function() { alert('fadeto'); }
答案 1 :(得分:9)
因为在JavaScript中,函数是可以具有属性的对象:
function test() { ... }
test.a = function () { ... };
test.a(); // totally valid
答案 2 :(得分:2)
我认为jQuery在代码概念方面究竟是什么概念令人困惑。我遇到了这个链接,它以一种非常简单易行的方式解释了jQuery架构:http://blog.mikecouturier.com/2010/02/beginning-with-jquery-solid-foundation_22.html
因此,简而言之,$是名为'jQuery'的JavaScript函数的别名,使用点符号(如$ .trim())调用的方法是'JavaScript'jQuery'函数的静态方法。请注意,函数继承自JavaScript中的对象,因此函数是JavaScript中的对象。