将惰性函数传入点击事件作为回调函数,但为什么不会更新,总是执行原来的函数?
只知道把函数赋给其他变量或对象属性来调用会导致不更新
可是作为回调函数,内部有触及以上两点吗? 求解
//显示、隐藏
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);
setInterval()
中传入的 tog 是一个引用,引用的是一开始的函数后来给 tog 重新赋值,所以它引用的函数变量了,但是
setInterval()
中仍然使用的仍然是原来那个函数……把
setInterval(tog, 100)
改成setInterval(function() { tog(); }, 100);
就好不过我估计你是想制造闪烁的效果,但是有两个问题没处理
写个示例: