`
zyx322
  • 浏览: 4306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JQuery内核学习(一)

 
阅读更多

模拟JQuery的实现:

 

1、起源—原型继承

 

   

    var $ = jQuery = function(){}
    jQuery.fn = jQuery.prototype = {
        jquery: "1.3.2",    //原型属性
        size: function() {    //原型方法
            return this.length;
        }
    }

 

 

2、生命—返回实例

 

    ①、第一步

        

        var $ =jQuery = function(){
            return new jQuery();    //返回类的实例
        }
        jQuery.fn = jQuery.prototype = {
            jquery: "1.3.2",
            size: function() {
                return this.length;
            }
        }

 

    ②、第二步

       

       var $ =jQuery = function(){
           return jQuery.fn.init();    //调用原型方法init()
       }
       jQuery.fn = jQuery.prototype = {
           init : function(){    //在初始化原型方法中返回实例的引用
               return this;
           },
           jquery: "1.3.2",
           size: function() {
               return this.length;
           }
       }

  

3、学步—分隔作用域

 

    ①、第一步

 

        var $ =jQuery = function(){
            return jQuery.fn.init();
        }
        jQuery.fn = jQuery.prototype = {
            init : function(){
                this.length = 0;
                this.test = function(){
                    return this.length;
                }
                return this;
            },
            jquery: "1.3.2",
            length: 1,
            size: function() {
                return this.length;
            }
        }

        

    测试结果:

  

        alert( $().jquery );    //返回"1.3.2"
        alert( $().test() );     //返回0
        alert( $().size() );     //返回0

  

    ②、第二步

       

        var $ =jQuery = function(){
            return new jQuery.fn.init();
        }
        jQuery.fn = jQuery.prototype = {
            init : function(){
                this.length = 0;
                this.test = function(){
                    return this.length;
                }
                return this;
            },
            jquery: "1.3.2",
            length: 1,
            size: function() {
                return this.length;
            }
        }

  

        测试结果:

 

        alert( $().jquery );    //返回undefined
        alert( $().test() );     //返回0
        alert( $().size() );     //抛出异常

  

4、生长—跨域访问

       

        var $ =jQuery = function(){
            return new jQuery.fn.init();
        }
        jQuery.fn = jQuery.prototype = {
            init : function(){
                this.length = 0;
                this.test = function(){
                    return this.length;
                }
                return this;
            },
            jquery: "1.3.2",
            length: 1,
            size: function() {
                return this.length;
            }
        }
        jQuery.fn.init.prototype = jQuery.fn;     //使用jQuery的原型对象覆盖init的原型对象

  

      测试结果:

 

        alert( $().jquery );     //返回"1.3.2"
        alert( $().test() );      //返回0
        alert( $().size() );      //返回0

 

 

5、成熟—选择器

     var $ =jQuery = function(selector, context ){      //定义类
            return new jQuery.fn.init(selector, context );  //返回选择器的实例
        }
        jQuery.fn = jQuery.prototype = {          //jQuery类的原型对象
            init : function(selector, context){       //定义选择器构造器
                selector = selector || document;    //设置默认值为document
                context = context || document;     //设置默认值为document
                if ( selector.nodeType ) {              //如果选择符为节点对象
                    this[0] = selector;                      //把参数节点传递给实例对象的数组
                    this.length = 1;                          //并设置实例对象的length属性,定义包含元素个数
                    this.context = selector;              //设置实例的属性,返回选择范围
                    return this;                                 //返回当前实例
                }
                if ( typeof selector === "string" ) { //如果选择符是字符串
                    var e = context.getElementsByTagName(selector);  //获取指定名称的元素
                    for(var i = 0;i<e.length;i++){     //遍历元素集合,并把所有元素填入到当前实例数组中
                        this[i] = e[i];
                    }
                    this.length = e.length;               //设置实例的length属性,即定义包含元素的个数
                    this.context = context;              //设置实例的属性,返回选择范围
                    return this;                                //返回当前实例
                } else{
                    this.length = 0;                         //否则,设置实例的length属性值为0
                    this.context = context;              //设置实例的属性,返回选择范围
                    return this;                                //返回当前实例
                }
            },
            jquery: "1.3.2",
            size: function() {
                return this.length;
            }
        }
        jQuery.fn.init.prototype = jQuery.fn;

 

分享到:
评论

相关推荐

    犀利开发+jQuery内核详解与实践(1)+代码

    《犀利开发+jQuery内核详解与实践》这本书便是在这样的背景下诞生的,它不仅仅是为了解释jQuery的用法,更重要的是深入解析了jQuery的内核原理,并结合实际开发中的应用场景,指导读者如何将jQuery的使用提升到一个...

    犀利开发_jQuery内核详解与实践(完整版421页).part3(共3部分)

    一、特别说明: 因网站上传文件50MB限制,所以本书分三个文件上传,分别为犀 利开发_jQuery内核详解与实践(完整版421页).part1;犀利开发_jQuery内核详解与实践(完整版421页).part2和犀利开发_jQuery内核详解与...

    犀利开发 jQuery内核详解与实践 PDF版本下载.txt

    《犀利开发 jQuery内核详解与实践》这本书深入解析了jQuery这一流行的JavaScript库的核心机制与实际应用技巧。根据所提供的信息,我们将围绕此书的主题展开详细的知识点介绍。 ### 一、jQuery简介 #### 1.1 什么是...

    jQuery内核(版本从1.5.2-1.8.3,包括min)

    jQuery是世界上最流行的JavaScript库之一,它极大地简化了HTML文档遍历、事件处理、动画和Ajax交互等任务。这个资源集合了jQuery从1.5.2到1.8.3的多个版本,包括min版,即经过压缩和优化的版本,适用于生产环境以...

    犀利开发+jQuery内核详解与实践(1)

    《犀利开发+jQuery内核详解与实践》是一本深入探讨jQuery内核及犀利开发技术的专业书籍。这本书分为两大部分,第一部分是jQuery内核的详解,旨在帮助读者理解这个广泛使用的JavaScript库的核心机制;第二部分则侧重...

    犀利开发_jQuery内核详解与实践(完整版421页).part2(共3部分)

    一、特别说明: 因网站上传文件50MB限制,所以本书分三个文件上传,分别为犀 利开发_jQuery内核详解与实践(完整版421页).part1;犀利开发_jQuery内核详解与实践(完整版421页).part2和犀利开发_jQuery内核详解与...

    犀利开发_jQuery内核详解与实践(完整版421页).part1(共3部分)

    一、特别说明: 因网站上传文件50MB限制,所以本书分三个文件上传,分别为犀 利开发_jQuery内核详解与实践(完整版421页).part1;犀利开发_jQuery内核详解与实践(完整版421页).part2和犀利开发_jQuery内核详解与...

    犀利开发_jQuery内核详解与实践-带书签pdf版.Part3(完整版421页)

    本资源为犀利开发_jQuery内核详解与实践-带书签pdf版.Part3(完整版421页) Part1下载地址:http://download.csdn.net/detail/u010371317/5638783 Part2下载地址:...

    犀利开发 jQuery内核详解与实践 下载

    《犀利开发 jQuery内核详解与实践》是一本深度探讨jQuery这一广泛使用的JavaScript库的书籍。本书旨在帮助读者深入理解jQuery的内部工作机制,并通过实践应用提升开发效率。jQuery以其简洁的API和强大的功能,深受...

    jQuery内核详解与实践_1.pdf

    ### jQuery内核详解与实践 #### 一、引言 jQuery作为一款流行的JavaScript库,在前端开发领域具有举足轻重的地位。它简化了许多常见的JavaScript任务,如选择元素、动画、事件处理等,使得开发者能够更加高效地...

    犀利开发_jQuery内核详解与实践-带书签pdf版.Part1(完整版421页)

    本资源由于现在网上提供的没有带导航标签,经过本人阅读一遍后加上了导航标签,方便各位学习人员导读,本书写得真的很实用,本书结合jQuery...本资源为犀利开发_jQuery内核详解与实践-带书签pdf版.Part1(完整版421页)

    jQuery API 3.3.1-速查手册中文版

    jQuery API 3.3.1-速查手册是一套jQuery API 3.3.1速查表,很实用的手册,在编写jQuery应用代码时查看api信息很实用,其内包含了jquery学习过程中的各类知识点,能够让软件工程师清楚地了解每一个函数的核心内容,...

    Jquery实现浏览器嗅探器特效

    本教程将详细讲解如何利用jQuery实现一个浏览器嗅探器特效,帮助开发者识别用户正在使用的浏览器类型、内核版本以及设备的基础信息。 首先,要实现浏览器嗅探器,我们需要理解jQuery中的`navigator`对象。这个对象...

    jquery学习笔记

    ### jQuery学习笔记详解 #### 一、jQuery简介 jQuery是一个流行的JavaScript库,旨在简化Web开发者在客户端处理HTML文档和操作DOM的方式。通过提供简洁、易读的API,jQuery极大地降低了编写复杂的JavaScript代码所...

    jquery 基础教程 pdf

    - **作用**: 它是jQuery框架的内核,用于构建jQuery对象。 **3.2 构造器的使用** - **参数类型**: 1. **选择器**: `jQuery(expression, [context])` - 根据CSS选择器在页面中匹配元素,可指定上下文进行匹配...

    图文切换-多浏览器兼容-jQuery-jcSlider

    标题中的“图文切换-多浏览器兼容-jQuery-jcSlider”表明我们要探讨的是一个基于jQuery的JavaScript库,jcSlider,它专门用于实现图文切换效果,并且这个库在多种浏览器上具有良好的兼容性。以下是对这些知识点的...

    深入PHP与jQuery开发 pdf格式

    你也将学到jQuery的基本工作原理,包括它如何在项目中应用,以及它的内核(强大的选择器引擎)如何工作。 1.1 为什么选择jQuery 在Web应用中,JavaScript以难以驾驭闻名。浏览器兼容性差、难以调试,又有着使人...

    jquery修改滚动条样式

    `jQuery`,作为一款广泛使用的JavaScript库,提供了丰富的API来帮助开发者实现这一目标。本文将详细介绍如何使用`jQuery`来修改滚动条的样式,以及一个包含4个示例图的滚动条特效应用。 首先,我们需要了解`jQuery`...

    基于jquery的自定义滚动条

    综上所述,基于jQuery的自定义滚动条技术涵盖了JavaScript基础、jQuery库的应用、CSS样式设计、事件处理、动画制作等多个方面,通过学习和实践这些知识点,开发者可以创造出既美观又实用的滚动条,提升网站或应用的...

    jQuery编程笔记

    #### 九、jQuery内核研究 1. **源码分析** - 学习jQuery的核心实现机制。 2. **性能优化** - 理解如何提高jQuery应用的性能。 #### 十、jQuery常用插件 1. **介绍** - 插件是jQuery生态系统的重要组成部分,...

Global site tag (gtag.js) - Google Analytics