手撸jQuery源码:面向对象思想优化代码

jQuery如此庞大的js库,要系统的管理肯定是要用到面向对象的,不然代码的可阅读性太差,后期维护升级会很不友好。

在jQuery中,是将所有的工具方法以对象的形式写在jQuery.extend({…})中调用,我们可以仿照:

dQuery.extend({
            //判断方法
    isFunction : function(sel){
        return typeof sel === "function";
    },
    //封装判断字符串和代码片段的方法
    isString : function(str){
        return typeof str === "string";
    },
    isHtml : function(str){
        return str.charAt(0) == "<" && 
        str.charAt(str.length-1) == ">" &&
        str.length >=3
    },
    //封装判断对象 数组 window的方法
    isObject : function(sel){
        return typeof sel === "object"
    },
    isWindow : function (sel){
        return sel === window;
    },
    isArray : function(sel){
        if(dQuery.isObject(sel)&&
            !dQuery.isWindow(sel)&&
            "length" in sel){
                return true;
            }
        return false;
    },
    //去除传入字符串的空格
    trim : function (str){
        if(!dQuery.isString(str)){
            return str;
        }
        if(str.trim){
            return str.trim();
        }else{
            return str.replace(/^\s+|\s+$/g,"")
        }
    }
    })

当然,我们就需要定义extend()方法:

//采用这种方式既可通过类调用添加静态方法 例如:dQuery.extend({}),
    //也可通过对象调用添加实例方法 例如:var a = new dQuery(); a.extend({})
    dQuery.extend = dQuery.prototype.extend = function (obj){
        for(var key in obj){
            this[key] = obj[key];
        }
    }

采用这样的方式,之后再添加任何方法就可以直接往dQuery.extend({})中添加。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值