我正在学习 JavaScript 中的 .call()
、.apply()
、.bind()
方法。当谈到 bind()
方法时,我遇到了一行:
Please note that the value for the first parameter is ignored if the bound function is constructed using the "new" operator.
我不明白。使用 new
运算符构造绑定(bind)函数意味着什么?
最佳答案
所以让我们来分解一下。首先,“new”关键字有什么作用?除此之外,它调用前面的函数,但将“this”的值设置为新创建的空对象。 这对于使用构造函数创建对象的新实例很有用。 (我建议您阅读更多内容)
现在,.bind 方法将创建调用它的函数的副本,但将“this”的值设置为传递给它的第一个参数。
因此,这仅意味着如果您使用 new 尝试调用与“this”关键字的值绑定(bind)的函数,则“new”关键字将覆盖您的 .bind 并且“this”将设置为一个空对象。
正如我所说,“new”用于使用“构造”该实例的函数来创建新实例。所以使用“new”来构造绑定(bind)函数意味着使用绑定(bind)函数作为构造函数。
关于javascript - 在bind()中如何处理 'new'运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58724999/