bind返回的绑定函数被当成构造函数-可以用new构造新实例,这样做有什么使用场景或者用途呢?
bind返回的绑定函数被当成构造函数-可以用new构造新实例,这样做有什么使用场景或者用途呢?
没什么意义.只能做面试题
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.
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
3 回答1.3k 阅读✓ 已解决
如果你不希望用new来构造一个实例,而是直接调用函数便生成一个实例,类似于工厂函数,那么bind是一个实现方式