zoukankan      html  css  js  c++  java
  • 闭包JS

    如 
    var a = function() {
       var i = 1;
       var b = function() {
          i = i+1;
       };
    };
     
    闭包的使用场景例如递归
    应该return b出去把
     
    re 不re, 看业务需求
     
    或者需要保存内部变量的就是闭包的使用场景了
     
    外部不一定要用
    保存内部变量实现缓存
     
    保存内部变量的就是闭包的使用场景
    function picLinkInit(parentClassName, imgW, imgH, childClassObjs) {
    var $match = $(parentClassName);
    var mWidth = Math.floor($match.width());
    
    var mHeight = computeHeight(mWidth, imgW, imgH);
    $match.css({
        "width": mWidth,
        "height": mHeight
    });
    for (var i = 0; i < childClassObjs.length; i++) {
        var childClassObj = childClassObjs[i];
            $(childClassObj.cName).css({
                "width": Math.floor(mWidth * childClassObj.ratioMoleculeW / childClassObj.ratioDenominatorW),
                // "background": "rgba(9,200,200,0.5)",
                "height": Math.floor(mHeight * childClassObj.ratioMoleculeH / childClassObj.ratioDenominatorH)
            });
        /* if (childClassObj.url) {
                $(childClassObj.cName).click(function () {
                    window.location.href =childClassObj.url;
                });
            }*/
       (function (i) {   //闭包
                if ( childClassObjs[i].url) {
                    $( childClassObjs[i].cName).click(function () {
                        window.location.href = childClassObjs[i].url;
                    });
                }
            })(i);
        }
    }
    闭包表现:js没有块级元素,数组记录的是最后一个的 。跟作用域等有关。
    封装成内部函数,把i传人进内部函数,这样外部函数不会调用到内部函数的变量。
    (function (i) {
        if ( childClassObjs[i].url) {
                  $( childClassObjs[i].cName).click(function () {
                      window.location.href = childClassObjs[i].url;
                  });
              }
         })(i);
  • 相关阅读:
    centos7 实时查看tomcat错误信息
    soapUI测试webservice(参数为xml格式的处理方式)
    四个好看的CSS样式表格
    ORM篇——有关NHibernate查询封装
    ORM篇——使用NHibernate配置对象实体的一些小问题
    c#操作XML文件的通用方法
    C#中正则表达式的使用
    C# Dictionary用法总结
    DLinq查询
    DataGrid通过DataSet保存为xml文件,并导入
  • 原文地址:https://www.cnblogs.com/zyjzz/p/6561919.html
Copyright © 2011-2022 走看看