知识点:
- this指向
- 回调函数执行时this指向了window
- 用that保存当前按钮的this
- 箭头函数的this为外层this也就是按钮
- 用bind绑定当前this
<button>点击</button>
<script>
var btn = document.querySelector('button')
// 不可行
// btn.onclick = function(){
// // var that = this
// console.log('点')
// setTimeout(function(){
// this.disabled = true
// console.log('禁用')
// },1000)
// }
// 以下3种可行
// 1秒前都可以点
btn.onclick = function(){
var that = this
console.log('点')
setTimeout(function(){
that.disabled = true
console.log('禁用')
},1000)
}
btn.onclick = function(){
console.log('点')
setTimeout(()=>{
this.disabled = true
console.log('禁用')
},1000)
}
btn.onclick = function(){
console.log('点')
setTimeout(function(){
this.disabled = true
console.log('禁用')
}.bind(this),1000)
}
</script>