在javascript中对数字调用构造函数
我一直在努力研究javascript原型继承,在阅读John Resig的书“Pro javascript技术”时,我尝试了以下内容:在javascript中对数字调用构造函数,javascript,Javascript,我一直在努力研究javascript原型继承,在阅读John Resig的书“Pro javascript技术”时,我尝试了以下内容: alert("me".constructor); //Correctly return String alert(alert.constructor); //Correctly return Function alert((55).constructor); 但是, alert(55.constructor);//I was expecting Number
alert("me".constructor); //Correctly return String
alert(alert.constructor); //Correctly return Function
alert((55).constructor);
但是,
alert(55.constructor);//I was expecting Number, but it returns error "SyntaxError: identifier starts immediately after numeric literal" in FF and in IE, it says it is expecting ")"
我还尝试了其他应该对数字起作用的函数,比如toFixed()
toPrecision()
甚至toString()
,但都不起作用
有人能解释一下这种行为吗?把()
放在数字周围,如下所示:
alert("me".constructor); //Correctly return String
alert(alert.constructor); //Correctly return Function
alert((55).constructor);
摘自评论:
解析器需要一个十进制数,但失败了,因为它看到的是字母“c”。或者,
55..constructor
也可以工作(因为55.
只是55.0
或55
)。是的,解析器需要一个十进制数,但由于看到字母c
而失败。或者,55..constructor
也可以工作(因为55.
只是55.0
或55
)。你也可以做55.0。constructor
:-PNice,不知道55。。还有55.0。谢谢大家!我认为解析器和Ruby的55一样聪明