<script>
// 改变函数内this指向 js提供了三种方法 call() apply() bind()
// 3.bind() 绑定 捆版的意思
var o = {
name: 'andy'
}
function fn(a, b) {
console.log(this)
console.log(a + b)
}
var f = fn.bind(o, 1, 2)
f()
// 1.不会调用原来的函数 可以改变原来函数内部的this指向
// 2.返回的是原函数改变this址后产生的新函数
// 3.如果有的函数我们不需要立即调用,但是又想改变函数内部的this指向此时用bind
// 4.我们有一个按钮,当我们点击了址后,就禁用这个按钮,3秒钟址后开启这个按钮
var btn = document.querySelector('button')
btn.onclick = function() {
this.disabled = true // 这个this指向的是btn这个按钮
// var that = this
setTimeout(function() {
this.disabled = false // 定时器函数的this指向的是window
}.bind(this), 1000)
}
</script>
利用bind()给setTimeout()重置this指向
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 函数的调用方式决定了 this的指向不同: 1. 普通函数调用,此时this指向window function f...
- 1.call()方法 作用:立即调用函数并改变this指向 应用场景:经常用于继承属性/方法 function...
- CSS知识点 1 选择器的优先级 (1)最高优先级是 (直接在标签中的设置样式,假设级别为1000) (2)次优先...