为什么大多数Number原型函数都具有全局重复函数?

时间:2016-11-28 15:05:16

标签: javascript

我真的很想知道,有两个重复功能的目的是什么。

例如:

  

isFinite()和Number.isFinite()

     

isNaN()和Number.isNaN()

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

有什么区别?

为什么存在重复?

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

1 个答案:

答案 0 :(得分:1)

正如@squint和@deceze所指出的那样,全局版本保持原封不动以保持向后兼容性。它们之间存在明显的差异,因为全局变量在测试之前将值转换为isNaN('NaN'); //true Number.isNaN('NaN')//false ,considers it as a string Number.isFinite('100');//false ,considers it as a string isFinite('100');//true

string result = String.Format("{0:0\\.}", 12.3);

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