日期:2014-05-16  浏览次数:20337 次

for in 的问题
Function.prototype.ff= "f "
var   b   =   new   Function();
b.dd= "d ";

for   (property   in   b)   {
alert(property+ '   '+b[property]);
}

会显示ff   f和dd   d
但为什么只有ff被显示了呢
象toString跟ff应给是同等级的啊
为什么就没有显示呢

------解决方案--------------------
toString?
那是不是算是方法,而不是属性的缘故呢?
------解决方案--------------------
内置的字段和方法都不会提示的,只提示自定义的字段或方法

而且以实例字段(prototype),实例方法(prototype),静态字段,静态方法的顺序进行显示
------解决方案--------------------
内置的不会显示。就如你不能显示内置函数的实现方法一样,因为内置函数其实跟本就不是用JS实现的,暴露给你的是一个虚幻的世界。
------解决方案--------------------
那能说说怎么算是内置吗
有明确的定义吗
-------------------------------------------
IE中那几个名字就代表内置,比如toString
其他浏览器中,原本就提供的非JS实现的算定义——如果你改写,就会暴露出来
------解决方案--------------------
重定义了属性也还是原来的,仍然不会显示,比如new Object,在里面写a[ "aaa "]aaa可以显示,其他都不行。