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加的方法。所以对象实例化后自然没有此方法。。所以那里会出错。这里也不回显示有成员
那2,为什么for(i in a){ alert(i); }什么都没有输出,既然a是一个对象,javascript中不是所有对象都有prototype属性吗?为什么没有将prototype属性输出来? 这个如何解释呢?
<script type="text/javascript">
alert((Function instanceof Object) == (Object instanceof Function))
</script>
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加的方法。所以对象实例化后自然没有此方法。。所以那里会出错。这里也不回显示有成员
alert(i);
}什么都没有输出,既然a是一个对象,javascript中不是所有对象都有prototype属性吗?为什么没有将prototype属性输出来?
这个如何解释呢?
就好比对象的toString一样