在JavaScript中,this关键字指的是拥有当前正在执行的函数的对象。但是,在异步回调中或将函数作为参数传递给其他函数时,this 的值可能会丢失。
当函数作为以下方法调用时一个对象(例如,object.method()),这正确地引用了该对象。但是,当该函数作为独立函数(例如 method())调用时,this 默认为全局对象。
为了防止出现此问题,bind() 允许您在以下情况下手动指定 this 的值:将来调用函数。它返回一个新函数,其 this 值绑定到指定对象。
在示例 2 中,bind() 用于创建一个新函数 (storeMyName2),该函数具有其 this 引用绑定到 myName。这确保了当调用新函数时,无论如何调用,this 都将引用 myName。
在示例 3 中,storeMyName3 设置为以下结果直接调用 myName.getName() 。这意味着 storeMyName3 包含返回值,即字符串“Tom”。它不是像storeMyName和storeMyName2这样的函数,所以不涉及this的概念。
以上是为什么 JavaScript bind() 需要在异步回调和函数参数中保留'this”值?的详细内容。更多信息请关注PHP中文网其他相关文章!