箭头函数绑定:解释
在 JavaScript 中使用箭头函数时,开发人员可能会遇到有关“this”绑定的意外行为。与常规函数不同,箭头函数维护词法范围,这意味着它们继承定义它们的环境的“this”绑定。因此,不可能在箭头函数中重新绑定“this”。
考虑这个示例:
var f = () => console.log(this); var o = {'a': 42}; var fBound = f.bind(o); fBound();
在此代码片段中,我们尝试绑定箭头函数“f”使用“.bind()”方法连接到对象“o”。但是,当我们调用“fBound”时,它会输出全局“window”对象而不是“o”。
这是因为箭头函数从词法封闭环境继承了它们的“this”绑定,在本例中是这样的是全局执行上下文。因此,“f()”和“fBound()”始终引用全局“this”。
为避免此问题,建议在需要绑定时使用常规函数。这些函数创建一个新的执行上下文,允许您使用“.bind()”方法显式设置“this”绑定。
以上是为什么'bind()”不能与 JavaScript 中的箭头函数一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!