zoukankan      html  css  js  c++  java
  • jquery闭包概念

    //闭包:有参数的加载事件(空参数形式)
    (function($){
    alert("123");
    })(jQuery);

    //有参数的加载事件
    (function($){
    alert($);
    })(456);

    (function($){
         $("div p").click(function(){alert("cssrain!")});
    })(jQuery);            //一个闭包

    这里面的$只是形参,但jquery是全局变量,所以不需要调用该函数就会自动执行,或者分两步

    就是转化成正常的函数,先写函数,后调用。

    如下所示
    其实:
    (function($){
         $("div p").click(。。。);
    })(jQuery);   
    就是等于
    function tempFunction($){  //创建一个以$为形参的函数
         $("div p").click(....);
    }
    TempFunction(jQuery);         //传入实参jQuery执行函数.

    $(function(cssrain){
         cssrain("div p").click(.... );
    })(jQuery);            //一个闭包

    闭包的基本写法:
    $(function(){do someting})();
    //这个你就理解为定义一个匿名函数并立即执行
    带参数的话就这样:
    $(function(形参){do someting})(实参);
    另外
    $(function(){var upc="i am upc"})();
    alert(upc);
    会提示undefined。
    因为闭包后,里面的变量就相当于局部了。

    闭包的好处:
    不增加额外的全局变量,
    执行过程中所有变量都是在匿名函数内部。

    上面的例子不是很好,跟javascript的闭包有点混淆,但这确实也是jquery中的一种闭包。只不过经过jquery的加工罢了。

  • 相关阅读:
    线段树&&线段树的创建线段树的查询&&单节点更新&&区间更新
    树&二叉树&&满二叉树&&完全二叉树&&完满二叉树
    Git学习记录 力做全网最强入门教程
    Markdown测试
    [转载] c++对结构体数组排序
    c/c++ 中#ifndef和#endif的作用及使用
    交互题(apio2016Gap)
    linux下对拍
    CTSC2017密钥、吉夫特
    省队十连测
  • 原文地址:https://www.cnblogs.com/boyhan/p/6506270.html
Copyright © 2011-2022 走看看