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

    function myTool() {
        // 1. 私有的数据
        var money = 1000;
    
        //  2. 提供操作私有变量的函数
        function get() {
            money *= 10;
            console.log(money);
        }
    
        function send() {
            money--;
            console.log(money);
        }
    
        return {
            'get': get,
            'send': send
        };
    
    }
    
    <script src="js/MyTool.js"></script>
    <script>
        var tool = myTool();
        tool.get();
        tool.send();
    </script>
    (function (w) {
        // 1. 私有的数据
        var money = 1000;
    
        //  2. 提供操作私有变量的函数
        function get() {
            money *= 10;
            console.log(money);
        }
    
        function send() {
            money--;
            console.log(money);
        }
    
        w.myTool = {
            'get': get,
            'send': send
        };
    })(window);

    高级排他

     1 <script>
     2     window.onload = function () {
     3         var allLis = document.getElementsByTagName('li');
     4         // 记录移动前选中的里索引
     5         var preSelectedIndex = 0;
     6         for(var i=0; i<allLis.length; i++){
     7             var li = allLis[i];
     8             (function (i) {
     9                 li.onmouseover = function () {
    10                     // 清除之前的样式
    11                     allLis[preSelectedIndex].className = '';
    12                     // 设置样式
    13                     this.className = 'current';
    14                     // 更新
    15                     preSelectedIndex = i;
    16                 }
    17             })(i);
    18         }
    19     }
    20 </script>

    函数节流

    <script>
        /*
        var timer = null;
        window.onresize = function (ev) {
            clearTimeout(timer);
            timer = setTimeout(function () {
                console.log('大家好!');
            }, 200);
        };
        */
    
       function throttle(fn, delay) {
           var timer = null;
           return function () {
               clearTimeout(timer);
               timer = setTimeout(fn, delay)
           }
       }
    
        window.onresize = throttle(function () {
            console.log('大家好!');
        }, 200);
    
        window.onscroll = throttle(function () {
            console.log('大家好!!!!!!!!');
        }, 200);
    </script>
    <script>
        function fn1() {
            var arr = new Array(99999);
            function fn2() {
              console.log(arr);
            }
            return fn2;
        }
    
        var f = fn1();
        f();
    
        f = null;
    </script>

    内存泄漏

    1    // 内存溢出
    2     /*var arrObj = {};
    3     for (var i = 0; i < 100000000; i++) {
    4         arrObj[i] = new Array(99999999);
    5         console.log(arrObj);
    6     }*/
     // 内存泄漏
       /* var num = new Array(9999999);
        console.log(num);
        num = null;*/
    
    占用内存很大的全局变量,使用完就置为Null
    1 内存泄漏
    2 // 定时器
    3   /*  setInterval(function () {
    4         console.log('----------------------');
    5     }, 1000);*/
  • 相关阅读:
    网络中有三种通讯模式:单播、广播、组播(多播)
    chmod命令
    linux bash 命令重定向和多命令执行
    linux中管道符“|”的作用
    web测试常用的 linux 命令
    集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)
    iOS 监测电话呼入
    iOS NSUserDefaults [setValue:forKey:] [setObject:forKey:] <Objc> setValue(_,forKey:) set(_,forKey) <Swift 3>
    iOS 将navigationItem.titleView设置为自定义UISearchBar (Ficow实例讲解)
    iOS 加载Viewcontroller的几种方法
  • 原文地址:https://www.cnblogs.com/zhangzhengyang/p/11229202.html
Copyright © 2011-2022 走看看