jquery1.0源码解读
$(this)的流程是怎样的
假定$(this)存在于这样一段代码:1
2
3
4
5
$("#child").each(function(){
var self = $(this);
})
那么$(this)会首先进入
jQuery函数
1 | function jQuery(a,c) { |
随后根据条件会进入
new jQuery(a,c)
1 | if ( window == this ) |
因为直接调用jQuery方法this为window,那么就又会进入jQuery函数,这次就会进入
this.get函数
1 | this.get( a.constructor == Array || a.length && !a.nodeType && a[0] != undefined && a[0].nodeType ? |
get函数中因为a此时为页面元素,所以根据条件会进入
jQuery.find静态函数
1 | find: function( t, context ) { |
因为满足t.constructor不为string,所以返回[t]数组,t就为当前元素。
再进入jQuery对象函数this.get即
jQuery.fn.get函数:
1 | get: function( num ) { |
最后就调用
[].push.apply
1 | this.length = 0; |
返回jQuery对象数组并包含当前元素