bind返回的绑定函数可以被当成构造函数-用new构造新实例,这样做有什么使用场景或者用途呢

新手上路,请多包涵

bind返回的绑定函数被当成构造函数-可以用new构造新实例,这样做有什么使用场景或者用途呢?image.png

阅读 1.8k
2 个回答

如果你不希望用new来构造一个实例,而是直接调用函数便生成一个实例,类似于工厂函数,那么bind是一个实现方式

没什么意义.只能做面试题

function Test() {
  return this;
}
const T1 = Test.bind({ type: "test" });
console.log(new T1(), new Test(), Test(), T1());
// test实例, test实例, window/global, {type: 'test'}

用new调用,都指向新的实例.bind提供的this被忽略,符合mdn的描述.
直接调用Test返回window,即它被声明时所在的上下文环境对象.
调用T1返回绑定的this.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题