Javascript 这个代码有什么问题?我无法扩展数字对象
我试图使用prototype扩展数字。错误的部分:Javascript 这个代码有什么问题?我无法扩展数字对象,javascript,Javascript,我试图使用prototype扩展数字。错误的部分: Number.prototype.xx = function(){ alert("hi"); } 5.xx(); 这会导致语法错误,因为点是数字文字符号的一部分,事实上,小数部分不是必需的,例如,var a=5是有效的数字文字 尝试: 相关的: 错误的部分: Number.prototype.xx = function(){ alert("hi"); } 5.xx(); 这会导致语法错误,因为点是数字文字符号的一部分,事实上,小
Number.prototype.xx = function(){
alert("hi");
}
5.xx();
这会导致语法错误,因为点是数字文字符号的一部分,事实上,小数部分不是必需的,例如,var a=5代码>是有效的数字文字
尝试:
相关的:
错误的部分:
Number.prototype.xx = function(){
alert("hi");
}
5.xx();
这会导致语法错误,因为点是数字文字符号的一部分,事实上,小数部分不是必需的,例如,var a=5代码>是有效的数字文字
尝试:
相关的:
这将起作用。这是JS解析器中的一个缺陷
(5).x(); // or
5..xx();
您可以在中阅读JavaScript编程语言的这一部分和其他奇怪部分,这将起作用。这是JS解析器中的一个缺陷
(5).x(); // or
5..xx();
您可以在中了解JavaScript编程语言的这一部分和其他奇怪的部分。问题是JavaScript语法有点奇怪。以浏览器支持的方式扩展Number原型没有什么错(扩展本机类型的固有问题除外)
问题是,紧跟在数字文字之后的任何
都被视为小数点。因此它看到5.
并期望一个十进制数,然后在看到xx
时抛出。您需要为此使用一种可选语法
5..xx()
(5).xx()
问题在于Javascript语法有点古怪。以浏览器支持的方式扩展Number原型没有什么错(扩展本机类型的固有问题除外)
问题是,紧跟在数字文字之后的任何
都被视为小数点。因此它看到5.
并期望一个十进制数,然后在看到xx
时抛出。您需要为此使用一种可选语法
5..xx()
(5).xx()
这两种方法都有效(考虑到上面的xx函数):
这两种方法都有效(考虑到上面的xx函数):
可能是一个bug,但它是ECMA标准的一部分。确实可能不是一个bug,但我肯定会认为它是一个缺陷。可能是一个bug,但它是ECMA标准的一部分。确实可能不是一个bug,但我肯定会认为它是一个缺陷。扩展本机类型的固有问题是什么?扩展本机类型的固有问题是什么?