zoukankan      html  css  js  c++  java
  • 【学】jQuery的源码思路2——$符号是如何封装的

    jQuery中的$符号功能很强大,原因在于对函数参数的个数以及种类的控制,还有对于面向对象思想的运用

    function jQuery(args){ //接受参数,并对其判断
        this.elements = []; //定义一个数组,每个生成的jQuery对象里都有这么一个elements数组属性,用于放选择出的元素
        switch (typeof args){
            case 'function': //如果传的是函数,就把这个函数传到ready函数的参数中
                ready(args);
                break;
            case 'string': //如果是字符串,就用getELe函数把元素选出来(这个getEle函数在源码思路1已经讲过)
                this.elements = getEle(args);//一旦通过$符号选出来的元素本身就是一个oo对象,里面都有一个elements属性,elements对象
                break;
            case 'object': //如果是个原生对象,就把它放进该oo的数组里
                this.elements.push(args);
                break;
        }
    }
    
    function ready(fn){ //顺便复习一下ready函数的封装
        if(document.addEventListener){
            document.addEventListener('DOMContentLoaded',fn,false);
        }else{
            document.attachEvent('onreadystatechange',function(){
                if(document.readyState == 'complete'){
                    fn();
                }
            });
        }
    }
    function $(args){
        return new jQuery(args); //不要忘了这里要new一个jQuery对象
    }
    
  • 相关阅读:
    使用CablleStatement调用存储过程
    权限问题
    全文检索lucene6.1的检索方式
    spring的JdbcTemplate
    spring使用注解开发
    IDEA的快捷键:
    IDEA里面的facets和artifacts的讲解
    Hibernate---criteria的具体使用列子
    关于操作日期函数及其取范围
    hibernate---crateria
  • 原文地址:https://www.cnblogs.com/bluefantasy728/p/5782245.html
Copyright © 2011-2022 走看看