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

安高
  • 1
新手上路,请多包涵

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

回复
阅读 518
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.

你知道吗?

宣传栏