2011-10-19 74 views
1

所以我想知道是否有人可以帮我理解jQuery的'类'是如何工作的。从我所知道的,它就像一个静态类像这样:jQuery类型结构

if(!$) { var $ = new function(){} } 

我想..

现在,什么是迷惑我,是你如何调用一个方法都带或不带参数像这样的:

$("a").removeClass("test"); 
$.get('myhtmlpage.html', myCallBack); 

我假设传递这样的说法只是返回document.getElementById(argument);

怎么会呢?在这样的事实之后,这个论点如何传递给这个类?此外,这是方法链的一些结果吗?

任何信息,以帮助我了解发生了什么将是伟大的!谢谢。

回答

2

我在这里使用jQuery源代码,所以你可以看看它。

$功能没有明确定义,而是链接到jQuery对象:

window.$ = jQuery; 

jQuery对象,像这样定义:

jQuery.fn = jQuery.prototype = { 
    constructor: jQuery, 
    init: function(selector, context, rootjQuery) { 

init: function(selector部分处理$('foo')案件。

如果没有给定参数,另一个函数用于:

get: function(num) { 
+0

感谢这个!任何信息将不胜感激! – grep

2

JavaScript中的变量可以包含$。例如foo和$ foo是不同的变量。自然,$是一个有效的对象。

值得注意的是,在JavaScript中,一切都是一个类。函数也是一个类,所以你的函数也可能有方法。

$ < - 这是一个带方法的函数。

$('a')< - 执行该函数执行某些操作并再次返回$。

$ .get()< - 调用该jQuery函数的方法。 $('a')。get()< - 这个函数的参数a再次返回$,然后你抓住它的方法并再次执行。

当$('a')被调用时,不是返回完全相同的$,它会包含关于您使用的选择器的一些额外信息。

我的最后一点是,当你调用$(x);其中x是一个函数,那么它被用作注册on-document-ready回调的快捷方式。

+0

参见:http://ejohn.org/apps/learn/ – romaninsh