关于js回调函数this绑定的问题
Function.bind
有了前面对于函数执行环境的描述,我们来看看 this 在 JavaScript 中经常被误用的一种情况:回调函数。JavaScript 支持函数式编程,函数属于一级对象,可以作为参数被传递。请看下面的例子 myObject.handler 作为回调函数,会在 onclick 事件被触发时调用,但此时,该函数已经在另外一个执行环境(ExecutionContext)中执行了,this 自然也不会绑定到 myObject 对象上。
清单 8. callback.js
button.onclick = myObject.handler;
这里的“在另外一个执行环境中执行了”这句话不理解,请问执行环境是如何跳转的???
有了前面对于函数执行环境的描述,我们来看看 this 在 JavaScript 中经常被误用的一种情况:回调函数。JavaScript 支持函数式编程,函数属于一级对象,可以作为参数被传递。请看下面的例子 myObject.handler 作为回调函数,会在 onclick 事件被触发时调用,但此时,该函数已经在另外一个执行环境(ExecutionContext)中执行了,this 自然也不会绑定到 myObject 对象上。
清单 8. callback.js
button.onclick = myObject.handler;
这里的“在另外一个执行环境中执行了”这句话不理解,请问执行环境是如何跳转的???
...全文
相关推荐
解决vue.js this.$router.push无效的问题
2. this指向问题在Vue组件的方法中,this通常指向当前Vue实例,但如果没有正确绑定,或者在某些回调函数中,this的指向可能会改变。
js代码-setTimeout this指向问题
让我们深入探讨这个问题。首先,`this`在JavaScript中是动态绑定的,其值取决于函数调用的方式。
JavaScript中this详解[项目源码]
为了解决这类问题,开发者可以使用bind方法直接绑定正确的上下文,或者在回调函数中使用箭头函数,避免this指向被错误地改变。
vue使用axios时关于this的指向问题详解
这个问题主要是由于JavaScript的函数作用域和`this`绑定规则导致的。Vue.js中的方法通常在组件实例上下文中执行,这意味着`this`关键字应该指向当前Vue实例。
学习掌握JavaScript中this的使用技巧
当函数作为对象的方法被调用时,其this值指向调用该方法的对象。因此,通过对象直接访问函数,其this自然是绑定到对象上。


