JS惰性函数作为回调函数时不自我更新
将惰性函数传入点击事件作为回调函数,但为什么不会更新,总是执行原来的函数?
只知道把函数赋给其他变量或对象属性来调用会导致不更新
可是作为回调函数,内部有触及以上两点吗? 求解
//显示、隐藏
var log = console.log.bind(console)
var tog = function() {
log(1)
$('.box').hide()
tog = function () {
log('lljl')
$('.box').show()
}
}
setInterval(tog,100)
// $('input').click(tog);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
setInterval()
中传入的 tog 是一个引用,引用的是一开始的函数后来给 tog 重新赋值,所以它引用的函数变量了,但是
setInterval()
中仍然使用的仍然是原来那个函数……把
setInterval(tog, 100)
改成setInterval(function() { tog(); }, 100);
就好不过我估计你是想制造闪烁的效果,但是有两个问题没处理
写个示例: