js闭包的应用

什么是js的闭包:简单来讲就是有权访问函数作用域中的变量的函数。

js闭包会带来什么问题:内存泄漏

js中闭包的用例:防抖节流

// 防抖
function debounce(func,wait){
  let timeout;
  return function(){
      if(timeout)
          clearTimeout(timeout);
      timeout = setTimeout(func,wait);
  }
}

// 防抖立即执行
function debounceNowRun(func,wait){
  let timeout;
  return function(){
    if(timeout)
      clearTimeout(timeout);
    
    let isRun = !timeout;
    timeout = setTimeout(()=>{
      timeout = null;
    },wait);

    if(isRun)
      func();
  }
}

// 节流
function throttle(func,wait){
  let timeout;
  return function(){
    if(!timeout){
      timeout = setTimeout(()=>{
        func();
        timeout = null;
      },wait);
    }
  }
}

【2】匿名类型

    var obj = new { myname = "匿名类型", myArray = new int[] { 1, 2, 3, 4 } };
    Console.WriteLine(obj.name);
    foreach(var key in obj.myArray){ 
        Console.WriteLine(obj.key);
    }
    Console.ReadKey();

【3】自动属性

       [3.1] 使用自动属性不会影响系统性能。

       [3.1] 不使用自动属性,字段用来存储数据 属性存储地址

     public class MyObject{
                private string _name; // 字段
                public string Name{  //属性
                     get{ return _name; }
                     set{ _name=value; }
                }
      }
      public class MyObject{  public string Name{  get;set;  }  }        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值