美文网首页
闭包、内置对象

闭包、内置对象

作者: BJ000 | 来源:发表于2019-10-30 22:05 被阅读0次

    闭包

    什么是闭包

    函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制收回

    function aaa(a){     

          var b = 5;     

          function bbb(){

              a++;

              b++;

            alert(a);

            alert(b);

          }

          return bbb;

      }

    var ccc = aaa(2);

    ccc();

    ccc();

    改写成封闭函数的形式:

    var ccc = (function(a){

      var b = 5;

      function bbb(){

          a++;

          b++;

        alert(a);

        alert(b);

      }

      return bbb;

    })(2);

    ccc();

    ccc();

    用处

    1、将一个变量长期驻扎在内存当中,可用于循环中存索引值

    <script type="text/javascript">

        window.onload = function(){

            var aLi = document.getElementsByTagName('li');

            for(var i=0;i<aLi.length;i++)

            {

                (function(i){

                    aLi[i].onclick = function(){

                        alert(i);

                    }

                })(i);

            }

        }

    </script>

    ......

    <ul>

        <li>111</li>

        <li>222</li>

        <li>333</li>

        <li>444</li>

        <li>555</li>

    </ul>

    2、私有变量计数器,外部无法访问,避免全局变量的污染

    <script type="text/javascript">

    var count = (function(){

        var a = 0;

        function add(){

            a++;

            return a;

        }

        return add;

    })()

    count();

    count();

    var nowcount = count();

    alert(nowcount);

    </script>

    内置对象

    1、document

    document.referrer  //获取上一个跳转页面的地址(需要服务器环境)

    2、location

    window.location.href  //获取或者重定url地址

    window.location.search //获取地址参数部分

    window.location.hash //获取页面锚点或者叫哈希值

    3、Math

    Math.random 获取0-1的随机数

    Math.floor 向下取整

    Math.ceil 向上取整

    4、其他内置对象

    Array

    String

    Date

    正则表达式

    相关文章

      网友评论

          本文标题:闭包、内置对象

          本文链接:https://www.haomeiwen.com/subject/tgwavctx.html