add,remove 这两个闭包访问的 hide 函数为什么不是同一个函数呢,
正因为不是同一个函数,导致事件解绑失败了。
求高手指教
-------借助全局变量 addHide 保存调用 add 时访问的 hide ,代码如下-------
let addHide = null
function clickListener() {
function hide() {
console.log('hide exc')
}
function add() {
addHide = hide
document.addEventListener('click', hide, false)
}
function remove() {
console.log(hide === addHide);
document.removeEventListener('click', hide, false)
}
return {
add,
remove
}
}
clickListener().add()
clickListener().remove()