String有个引号, 去掉引号照样没戏 :)

解决方案 »

  1.   

    首先.对于数字有特殊意义(小数点)
    所以不能直接这样使用至于后一个问题应该这样
    Number.prototype.upto = function(){ alert(this); };
    (1).upto();
    注意;
    否则就会变成
    Number.prototype.upto = function(){ alert(this); }(1).upto();
      

  2.   

    谢谢“cloudgamer”,第一个明白了,自己钻牛角尖去了……第二个还是不大明白
    为什么我通过变量去调用就可以,而直接通过(数字)调用就变成那样子呢?
      

  3.   

    Number.prototype.upto = function(i,fun){
        for(var tmp=this;tmp<i;tmp++)
            fun(tmp);
    }(1).upto(3,function(i){
        document.write(i+"<br/>");
    });第二种就相当于这样子。
    一种函数匿名调用的写法,function(i,fun){}后没有分号,就会被解析成function(i,fun){}(1)……
    这里的1就成了function(i,fun)这个函数传进去的参数了,也就相当于(i,fun)里的i了