jquery 源码学习 – jquery的闭包

jquery源码版本2.0.3,下载地址:http://www.jq22.com/jquery/jquery-2.0.3.zip

这篇jquery源码学习是作为秒味课堂的jQuery源码分析的学习笔记。

什么是闭包?

闭包是建立一个独立的作用域,并让外部能够访问函数内部变量和对象的方法。

闭包的作用

闭包可以创建一个不被外部干扰的封闭的作用域,保证全局作用域不被污染,并且可以定义私有、公有的变量和方法函数。

闭包中被调用的变量其生命周期保存到该闭包的生命周期被结束为止。

闭包示例

伪代码:

//创建一个闭包,外部无法直接访问内部变量和方法函数。
var count = (function(){
    var number = 0;
    //指定外部可以访问的方法函数
    return function(){
        //被调用的变量不会被内存回收销毁,生命周期和闭包生命周期一致
        return number++;
    }
})();

count();//1
count();//2
count();//3

jquery的闭包

//因为js是基于原型的语言,所以在传参中直接传入window对象可以减少js在原型链中查找window对象的时间
//在js中undefined既不是保留字也不是关键字,所以为了防止外部定义了个名字叫undefined的变量干扰到jquery的代码,所以jquery将undefined作为传参传入。
(function( window, undefined ) {

    function jQuery(){
    }

    //其他代码片段
    if ( typeof window === "object" && typeof window.document === "object" ) {
        //将jQuery实例化方法挂载到window对象下面,那么就可以在外部访问到jQuery对象了
        window.jQuery = window.$ = jQuery;
    }
})(window);
console.log(window.jQuery);
console.log(window.$);
console.log($);

以上三种方式都可以调用到jQuery方法


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值