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()
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.