new closure

再讲闭包closure

函数call和apply区别

事件代理(委托)是什么

闭包是什么,有什么特性,有什么区别

函数call和apply区别

fn.call(this,p1,p2,p3)// call的参数是一个个拆分传进去
fn.apply(this,arguments)// arguments是数组或者类数组传参

事件代理(委托)是什么

 const p1 = document.getElementById('p1')
 const body = document.body
 bindEvent(p1,'click',e=>{
    e.stopPropagation()//注释掉这一行,来体会事件冒泡
    alert('active')
})
bindEvent(body,'click',e=>{
    alert('cancel')
})

闭包是什么,有什么特性,有什么区别

回顾作用域和自由变量

回顾闭包应用场景:作为参数被传入,作为返回值被返回

回顾:自由变量的查找,要在函数定义的地方(而非执行的地方)

影响:变量会常驻内存,得不到释放,闭包不要乱用