JQuery源码之——— 方法和属性

来源:互联网 发布:finale2011破解 mac 编辑:程序博客网 时间:2024/06/14 11:01

有段时间不更新了,今天总结一下jQuery 的一些方法和属性

一、jq 方法和属性的整体结构(91行 —— 281行)

 jQuery.fn = jQuery.prototype = {            jquery: 版本            constructor: 修正指向问题            init(): 初始化和参数管理            selector: 存储选择字符串            length: this对象的长度            toArray(): 转数组            get(): 转原生集合            pushStack(): JQ对象的入栈            each(): 遍历集合            ready(): DOM加载的接口            slice(): 集合的截取            first(): 集合的第一项            last(): 集合的最后一项            eq():集合的指定            map(): 返回新集合            end(): 返回集合前一个状态            push(): (内使用)            sort(): (内部使用)            splice():(内部使用)    }

二、jq方法和属性的详解

1.属性:

jquery: core_version, // 存储jq版constructor: jQuery,  // 将构造函数指向 jQuery

2. init 方法

初始或jq,匹配jq选择器

init: function( selector, context, rootjQuery ) {   // 处理代码}

jq选择器的书写方式一共有一下几种:

标签类名选择:$("#div") $(".div") $("div") $(".div #p")创建元素:$("<li>") $("<li>111</li>")对象this,doc选择:$(this) $(document)函数:$(function(){})类型选择:$([]) $({})

(1)$(""), $(null), $(undefined), $(false) 情况

我们在看jq源码时,首先在init方法看到两个声明的变量,其次我们看到了 在 106行到108行有如下代码:

if ( !selector ) {    return this;}

这主要选择的是$(""), $(null), $(undefined), $(false)
这几种类型的。

重点内容 这里返回的是 this,jq中已将this做了处理,什么样的处理呢,这样的处理:

$("div") 如this = {  0:"div",  length:1,  context:   // 可有可无}

怎么做到的呢,前面我们已经提到了:是下面这段代码实现的

jQuery = function( selector, context ) {        return new jQuery.fn.init( selector, context, rootjQuery );}, 

(2)$("<div>") $("<div></div>") $("#div")
接下来我们可以看到第二个判断 111 —— 176行

if ( typeof selector === "string" ) {}
原创粉丝点击