函数的JavaScript原型工作不正常

函数的JavaScript原型工作不正常,javascript,function-prototypes,Javascript,Function Prototypes,我为“”函数做了一个原型。 为什么我不能直接在数字上使用它?这是一个数字对象 var a = 21; 21.between("( 16 20 ]"); // this is wrong and not working //alert ( typeof 21 ) is number a.between("( 16 20 ]"); // working 尝试: 当解析器(也就是lexer)看到“21”时,它会认为您得到了一个浮点常量。同样有效的(我个人觉得很恶心的)是: @是的,没错。语言很乐意

我为“”函数做了一个原型。 为什么我不能直接在数字上使用它?这是一个数字对象

var a = 21;
21.between("( 16 20 ]"); // this is wrong and not working
//alert ( typeof 21 ) is number
a.between("( 16 20 ]");  // working
尝试:

当解析器(也就是lexer)看到“21”时,它会认为您得到了一个浮点常量。同样有效的(我个人觉得很恶心的)是:


@是的,没错。语言很乐意做这类事情,但有时不能,因为语法会妨碍它。有趣的是,答案是可以做到的。在一个相关的注释中,我写了一个web小东西,它使用一种更结构化的方法来处理间隔,并将它们转换为您可能感兴趣的字符串:我不建议扩展本机原型。在更高版本的javascript中,您可能会遇到名称空间冲突,并意外地覆盖标准方法,使周围的每个人都感到困惑。
(21).between("( 16 20 ]");
21..between("( 16 20 ]");