Function.prototype.isPrototypeOf(Object)
你写成了一个函数的参数了

Function.prototype.isPrototypeOf(o)
没有什么区别了

解决方案 »

  1.   

    Object在这里只是个局部变量,换成其它字符串也可以,不会对顶级类Object有任何影响
      

  2.   

    那为什么  Object o  的原型对象 是 Function?
      

  3.   

    每个object或是函数都有一个prototype的
    而当你使用的时候或是进行对象的某些操作的时候,都会继承于prototype
    所以说 在进行isprototype的时候
    只要是new出了该对象或函数  都为true
      

  4.   

    按照你的意思,我写了一段测试的代码:
    function func(){};
    func.prototype=Object;
    for(p in func){
    alert(p);
    }alert(func.prototype.isPrototypeOf(Object));for(p in Function.prototype){
    alert(p);
    }
    alert(Function.prototype.isPrototypeOf(Object));可以发现,func.prototype.isPrototypeOf(Object)的结果是true,如果不定义func的prototype,则func.prototype.isPrototypeOf(Object)返回false,所以我猜想对于Function的定义应该和func.prototype的定义差不多,要不然也不会返回true的。
      

  5.   

    楼上的, 照你这么说  Object 就不是最上层的了? 他的上层是  Function? 我晕了...
      

  6.   

    按照你的意思,我写了一段测试的代码:
    function   func(){};
    func.prototype=Object;
    for(p   in   func){
    alert(p);
    }alert(func.prototype.isPrototypeOf(Object)); 结果是false不是true
      

  7.   

    他们的关系可以理解成是互相属于的没有绝对的级别关系这俩东西比较特殊
    关于一些方法的继承可以看这里
    http://blog.csdn.net/muxrwc/archive/2007/07/30/1716703.aspx