解释 `Function.prototype.bind`
Topics
JavaScriptOOP
在GitHub上编辑
bind()
方法创建了一个新的函数,在被调用时,它有this
关键字设置为提供的值。 具有在调用新函数时所提供的任何参数之前的特定序列。
资料来源:Function.prototype.bind() - JavaScript | MDN
bind()
对于在要传递给其他函数的类的方法中绑定 this
的值非常有用。 这通常是在 React 类组件方法中做的,而这些方法没有使用箭头函数来定义。
在上面的例子中,当getAge
方法被调用时没有一个调用对象(如unboundGetAge
), 值为 undefined
,因为getAge()
里的 this
值变成了全局对象。 boundGetAge()
将其this
绑定到john
,因此它能够获得john
的age
。
我们甚至可以在另一个不是john
的对象上使用 getAge
! boundGetAgeMary
返回 mary
的age
。
练习
在 GreatFrontEnd 尝试实现你自己的 Function.prototype.bind()
方法。