上面的代码说明了什么问题,javascript中function与对象到底是什么关系?

解决方案 »

  1.   

    Object与Function互相属于
    <script type="text/javascript">
    alert((Function instanceof Object) == (Object instanceof Function))
    </script>
      

  2.   

    1
    function sayHi(){
      alert("hi");
    }是个function对象但是类型是function
    你typeof 自然就是function
    var a = new sayHi();
    alert("typeof a:"+typeof a); //这里因为你前面使用了new 所以创建了一个对象即typeof 为object
    for(i  in a){
     alert(i);
    }
    //这里当然没有返回成员因为你的sayHi.alternate只是给sayHi对象加了个方法。。而不是
    //从sayHi.prototype加的方法。所以对象实例化后自然没有此方法。。所以那里会出错。这里也不回显示有成员
      

  3.   

    那2,为什么for(i  in a){
     alert(i);
    }什么都没有输出,既然a是一个对象,javascript中不是所有对象都有prototype属性吗?为什么没有将prototype属性输出来?
     这个如何解释呢?
      

  4.   

    因为prototype属性比较特殊。。
    就好比对象的toString一样
      

  5.   

    用函数创建的对象和函数的prototype相同的吗?