这个代码怎么了?我无法扩展Number对象

sus*_*ani 1 javascript


Number.prototype.xx = function(){
alert("hi");
}

5.xx();

我正在尝试使用原型扩展Number.

CMS*_*CMS 10

错误的部分:

5.xx();
Run Code Online (Sandbox Code Playgroud)

这将导致一个语法错误,因为该点被视为数字文字符号的一部分,其实并不需要小数部分,例如,var a = 5.;是一个有效的数字文本.

尝试:

(5).x(); // or
5..xx();
Run Code Online (Sandbox Code Playgroud)

有关:


lon*_*day 5

问题是一个相当古怪的Javascript语法.以浏览器支持的方式扩展Number原型没有任何问题(除了扩展本机类型的固有问题).

问题是.在数字文字之后的任何文字都被视为小数点.所以它看到5.并期望一个十进制数,然后在它看到时抛出xx.您需要使用其中一种替代语法.

(5).xx();
5..xx();
5 .xx();
Run Code Online (Sandbox Code Playgroud)