JavaScript 中的函数式编程是否可以具有任何类型的多态性?

Ali*_*iba 5 javascript polymorphism types functional-programming parametric-polymorphism

JavaScript 中的函数式编程是否可以具有任何类型的多态性?

我喜欢 FP,但是当我想使用 JS 时,除了使用类/原型之外,我无法弄清楚如何在 JS 中支持多态性。

例如如何toString在 JS 中使用 FP实现?

使用 OOP,我可以简单地重载,toString以便object.toString()执行特定于object或其原型的 toString 代码。

cev*_*ing 1

函数上下文中的多态性意味着具有相同名称但具有不同参数类型的函数调用根据参数类型调用不同的函数。这意味着必须根据参数类型进行调度。您可以在运行时使用typeofinstanceof语法在 JS 中执行此类调度。但这对于一般用途来说被认为太慢了。大多数现代函数方法(ML、Haskell)都使用类型推断来实现编译时分派。这仅影响编译时间而不影响执行时间。但JavaScript是像Scheme一样的传统函数式语言,具有固定的对象系统并且没有宏。

所以答案是:不,JS 中不可能有任何类型的多态性。