Number.prototype.xx = function(){
alert("hi");
}
5.xx();
我正在尝试使用原型扩展Number。
答案 0 :(得分:10)
错误的部分:
5.xx();
这会导致语法错误,因为该点是数字文字符号的一部分,实际上,小数部分不是必需的,例如,var a = 5.;
是一个有效的数字文字。
尝试:
(5).x(); // or
5..xx();
相关:
答案 1 :(得分:5)
问题是一个相当古怪的Javascript语法。以浏览器支持的方式扩展Number原型没有任何问题(除了扩展本机类型的固有问题)。
问题是数字文字后面的任何.
都被视为小数点。所以它看到5.
并且期望一个十进制数,然后在看到xx
时抛出。您需要使用其中一种替代语法。
(5).xx();
5..xx();
5 .xx();
答案 2 :(得分:2)
答案 3 :(得分:0)
这两种方法都适用(鉴于上面的xx函数):
var num = 5;
num.xx();
(5).xx();