谁能帮我解释一下,为什么下面的代码加上关键辽new就会有内容输出,去掉的话也不报错,但没有内容输出来.谢谢了function qq()
{
    document.write("test or test");
}
Function.prototype.originalToString = Function.prototype.toString;
Function.prototype.toString =  new function()
{
    document.write("Change the toString function<br>");};

解决方案 »

  1.   


    Function.prototype.toString =(function()
    {
        document.write("Change the toString function<br>");})();
    这样也可以的 函数与函数实例区别
      

  2.   

    是通过使用 new 去调用函数.
      

  3.   

    加了 new ,表示这是一个对象,此时会去执行这个函数,也就有输出了。
    如果不加 new,只是说 toString 是个函数,只是把函数赋值给 toString,并没有执行,要执行的话,再调用 toString。
      

  4.   

    你是如何调用的,不加new也没问题啊
    function qq()
    {
        document.write("test or test");
    }
    Function.prototype.originalToString = Function.prototype.toString;
    Function.prototype.toString =function()
    {
        document.write ("Change the toString function<br>");};
    qq.toString();
      

  5.   

    看看这个
    http://yring.javaeye.com/blog/171544
      

  6.   

    4楼的兄弟正解另外 function qq()是做什么用的Function.prototype.originalToString = Function.prototype.toString;
    就是一个方法的赋值,不知道是否存在有继承。如果谁知道告诉一下,很想知道啊
      

  7.   

    看看这个图调用qq.toString();时,在对象qq中没有找到toString方法,所以沿着红色虚线到Function.prototype
    里面查找到:
    Function.prototype.toString = function() 

        document.write ("Change the toString function <br>"); }; 
    最后调用该函数...