javascript - 在bind()中如何处理 'new'运算符?

标签 javascript

我正在学习 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/

相关文章:

javascript - 计算 JavaScript 中数组数组的数值总和

javascript - jQuery 选择器 : 'starts-with && ends-with' doesnt work on element with multiple classes

javascript - Microsoft CRM 来自定制

javascript - 在Javascript中轮询本地值的首选方式?

javascript - 十进制表示法的科学记数法在 Highcharts 中不起作用

javascript - 如何使用对象设置 jQuery.data()

javascript - 无法导入我的路线模块

javascript - 如何在移动 View css 中相互交换 div

javascript - 在javascript中同步进行地理定位调用

javascript - 为什么 'new Function' 不能作为 eval 工作?