我真的很想知道,拥有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
目的是不要打破为旧实施而编写的代码,并为新开发人员提供更好的代码。(与向后兼容相同)