这段代码有什么问题?我不能够延长
问题描述:
Number.prototype.xx = function(){
alert("hi");
}
5.xx();
我试图使用原型扩展Number Number对象。这段代码有什么问题?我不能够延长
答
错误的部分:
5.xx();
这将导致一个语法错误,因为该点被视为数字文字符号的一部分,其实并不需要小数部分,例如,var a = 5.;
是一个有效的数字文字。
尝试:
(5).x(); // or
5..xx();
相关:
答
瑕疵的问题是JavaScript语法的一个相当古怪位。这没有什么错延伸数原型,你做浏览器是否支持它(不是扩展原生类型的固有问题等)的方式。
的问题是,一些文字作为一个小数点被处理后立即任何.
。因此,它认为5.
,预计一个十进制数,然后抛出了当它看到xx
。您需要为此使用其中一种替代语法。
(5).xx();
5..xx();
5 .xx();
+1
扩展Native Type的固有问题是什么? –
+0
...或'5 ['xx']()'。 –
答
这两种方法就可以了(上面给出你的XX功能):
var num = 5;
num.xx();
(5).xx();
奇妙是吧。感谢 –