再讲闭包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')
})
闭包是什么,有什么特性,有什么区别
回顾作用域和自由变量
回顾闭包应用场景:作为参数被传入,作为返回值被返回
回顾:自由变量的查找,要在函数定义的地方(而非执行的地方)
影响:变量会常驻内存,得不到释放,闭包不要乱用