var Foo = function(){this.s1 = "ss1";}; Foo.s2 = "ss2";
Foo.prototype.s3 = "ss3";
foo = new Foo();
for (elm in foo)
{
alert(elm+" : "+foo[elm]);
}
我把你的函数修改了一下,我实例化了一个Foo对象,现在可以看见 s1,s3但是s2没有。原因是s1,s3只能是在对象实例化才可以引用,而你的s2是你动态符值得,实例化后访问不到。反之,你不实例化动态访问就只能访问到s2.
改为:
var Foo = function(){this.s1 = "ss1";this.s2 = "ss2";}; Foo.prototype.s3 = "ss3";
foo = new Foo();
for (elm in foo)
{
alert(elm+" : "+foo[elm]);
}
则三个属性都可以访问