蓝色幻想728

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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对象
}
posted on 2016-08-17 22:53  蓝色幻想728  阅读(244)  评论(0编辑  收藏  举报