gpt4 book ai didi

TypeScript:是否可以定义一个创建函数实例的类?

转载 作者:搜寻专家 更新时间:2023-10-30 21:24:27 26 4
gpt4 key购买 nike

在 TypeScript 中,类是否可以作为函数实例的构造函数?我设想的是这样的:

class SomeThing {
(name: string) {
// do something with name
}
}

let thing = new SomeThing();
thing('John Doe');

最佳答案

这在技术上是可行的(它需要一些技巧,我不会在这里写)但你真的不想这样做;这就是原因。

new运算符创建一个新的对象(不是函数),其 __proto__prototype的操作数。这意味着你不可能有一个由 new 返回的可调用的东西。运算符,除非您从构造函数中显式返回其他内容。

但是如果你从构造函数中返回其他东西,那么thing instanceof SomeThing将是 false , 你将无法使用 prototype来自 thing 的类的方法.所以在那个时候它的行为并不像 class完全没有,而且你最好拥有一个工厂函数,它可以做任何它想做的事。

关于TypeScript:是否可以定义一个创建函数实例的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39154582/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com