我真的很想知道,拥有两个重复函数的目的是什么。
例如:
isFinite() and Number.isFinite()
isNaN() and Number.isNaN()
但是,例如,当有 Number.isInteger()
时,就没有 IsInteger()
函数。
有什么区别?
为什么存在重复项?
什么时候应该使用 Number 原型(prototype)函数或 Global 函数?
最佳答案
正如 @squint 和 @deceze 所指出的,全局版本是一种为了向后兼容而保持完整的旧版本。它们具有如下所示的明显差异,因为全局变量在测试之前将值转换为 Number
。
isNaN('NaN'); //true
Number.isNaN('NaN')//false ,considers it as a string
Number.isFinite('100');//false ,considers it as a string
isFinite('100');//true
目的是不破坏为旧实现编写的代码,并为新开发人员提供更好的代码。 (与向后兼容性相同)
关于javascript - 为什么大多数 Number 原型(prototype)函数都有全局重复函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40847447/