为什么数字原型函数中的大多数具有全局重复函数



我真的很想知道,拥有2个重复函数的目的是什么。

例如:

isfinite()和number.Isfinite()

isnan()和number.isnan()

但是,当有Number.isInteger()时,没有IsInteger()函数。

有什么区别?

为什么存在重复?

何时应该使用数字原型函数或全局函数?

全局一个是一种旧版本,以保持向后兼容性,如@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 

目的是不要打破为旧实施而编写的代码,并为新开发人员提供更好的代码。(与向后兼容相同)

最新更新