什么是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; } }