【发布时间】:2012-10-24 09:02:18
【问题描述】:
我需要在 javascript 中构建一个可以处理不同类型变量的多态函数。整数和浮点数。
这可能吗?最好的方法是什么?
【问题讨论】:
标签: javascript integer polymorphism
我需要在 javascript 中构建一个可以处理不同类型变量的多态函数。整数和浮点数。
这可能吗?最好的方法是什么?
【问题讨论】:
标签: javascript integer polymorphism
Javascript 中没有整数数据类型,因此您必须检查值是什么,即是否有小数部分:
if (value % 1 != 0) {
// use it as integer
} else {
// use it as floating point
}
【讨论】:
5.0===5 和 5.0 计算结果为 5。除非是strings,否则无法区分它们
.等。
唯一的最佳解决方案是不依赖方法重载(实际上,这是您在此处寻找的,并且在 JS 中不可用),而是使用不同的函数名称并具有两个函数。
这意味着您必须在调用端决定调用哪个函数,但这与其他语言(如 Java、C#、C)类似,在编译时做出决定。
【讨论】:
是的。 Javascript 没有函数参数类型化。 整数和浮点数是一类类型的对象 - Number
【讨论】: