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

有段时间不更新了,今天总结一下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" ) {

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值