本帖最后由 myapple_918 于 2014-11-04 20:53:12 编辑

解决方案 »

  1.   


    Number.prototype._toString = Number.prototype.toString;
    Number.prototype.toString = function(t){
    alert('123');
    return this._toString(t);
    }
    document.write((255).toString(16));
      

  2.   

    prototype 有必要了解一下原型
      

  3.   

    我还想问一个深入点的问题,如果我重写了toString方法,假如有其他的方法比如叫improvetoString方法,它的实现源码就是加入一些改进,然后调用toString方法,如果在一段JS代码中同时出现了toString和improvetoString两个方法,怎样能够实现toString方法的重写也能在improvetoString中生效呢?
      

  4.   

    function a(){}
    a.prototype.improvetoString=function(a){alert("improvetoString");return this.toString()}
    a.prototype._toString=a.prototype.toString;
    a.prototype.toString=function(a){alert("tostring");return this._toString(a)}
    new a().toString();
    new a().improvetoString();
      

  5.   

    prototype 是可以使用命名空间的,这样就可以区分使用的哪个方法了
      

  6.   

    如果不对improvetoString方法内部进行修改,只是对toSring方法修改后,就能使得improvetoSting方法也具备新的功能,这样能实现吗?
      

  7.   

    我在说的明白点,就是比如我对toString方法进行了重写加了个alert,然后调用improvetoString,能不能在不修改improvetoString方法源码的情况下,就能实现调用后也具备alert功能?
      

  8.   

    又比如jquery的get,post 方法的底层实现都是调用ajax方法,如果对ajax方法就行了修改,怎么样在不修改get和post的情况下就能在调用时用到的是新的ajax方法?
      

  9.   

    上面给的那个就是啊我不想对improvetoString进行扩充,只是调用的时候即可实现新toString方法的功能,这样可以吗?
      

  10.   

    上面给的那个就是啊我不想对improvetoString进行扩充,只是调用的时候即可实现新toString方法的功能,这样可以吗?
    只要improvetoString 调用了toString
    那么该了toString 自然会影响到improvetoString 
      

  11.   

    上面给的那个就是啊我不想对improvetoString进行扩充,只是调用的时候即可实现新toString方法的功能,这样可以吗?我的那个例子本来就是你要求的那样,你在问问题前为什么自己不先实验下呢?