jquery这五行代码分别是什么意思呢?

[align=center][size=x-large]哥刚学jquery.学习插件时遇到一些问题,很疑惑,大神们,现身吧~[/size][/align]
[code="java"]$.fn.gparents= function () {
var gparents=[];
$.each(this,function(i,n){
gparents.push(n.parentNode);
});
gparents=$.unique(gparents);//
alert([color=red]this[/color].attr('name'));//this是jquery对象. 莫非是function本身?
return this.[color=red]pushStack/color;//setArray方法无效什么原因呢? pushStack又是什么方法,
}[/code]

以上代码中:
1,this到底是什么意思?
2,pushStack和setArray是哪里的函数啊?查了jquery手册木有啊,在DOM手册也木有啊..

上述代码作用是返回当前jQuery实例包含的元素的的一个不重复的父级元素的集合构成的jQuery实例。
this是指当前的jQuery实例,如$("div.class"),则gparents函数中的this就是指当前$("div.class")这个实例。
pushStack函数实际是创建一个不包含任何dom节点的空jQuery对象实例,然后把传进来的将第一个参数为数组则压入jQuery栈,否则为当前的空实例添加属性值,最后返回上述jQuery对象。

首先 $.fn.gparents 这样的写法是 追加 jQuery类实例对象的一个函数
其中this 也就是例如:$("#id").gparents();
也就是var d=$("#id"); 也就是 d的dom对象
而 pushStack
pushStack( elements ) 返回: jQuery
描述: 将一个DOM元素集合加入到jQuery栈中
api 链接:
[url]http://www.kekaku.com/jQuery_1.6/docs/pushStack/index.html[/url]

setArray api链接:
[url]http://www.mydeveloperblog.com/jquery/jquery-api/setarray-elems-and-each-fn-and-set-elems-jquery-api-documentation-part-5/[/url]