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可以显示,其他都不行。