在箭头函数中绑定 'this'
ES6 中引入的箭头函数由于其简洁的语法而变得流行。然而,箭头函数的一个限制是它们无法重新绑定“this”。与常规函数不同,箭头函数在定义时从周围上下文继承其“this”绑定。
在提供的示例中,箭头函数:
var f = () => console.log(this);
在全球范围。因此,“this”指的是全局窗口对象,而不是我们尝试将函数绑定到的“o”对象:
var fBound = f.bind(o); fBound(); // Logs the window object
要解决此问题,请勿使用箭头函数。相反,定义一个普通函数:
var f = function() { console.log(this); }.bind(o); f(); // Logs the 'o' object
在这种情况下,“this”绑定被正确设置为“o”对象,因为使用了普通函数,允许重新分配绑定。
以上是为什么'bind()”不能与箭头函数一起使用?的详细内容。更多信息请关注PHP中文网其他相关文章!