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

问个for的问题
toString 在什么情况下,那个for循环不执行。也就是说不设enumerables = null这个值
for (var i in {toString: 1}) {

enumerables = null;

}

------解决方案--------------------
那个for循环本来就是不执行的
toString是不可壮举的属性(方法),就算你重定义toString也还是不可壮举的。
for(var i in {toString: 1,aaa:2}) {
alert(i);
}
 
------解决方案--------------------
引用:
在mootools有这样一段:
var enumerables = true;
for (var i in {toString: 1}) enumerables = null;
if (enumerables) enumerables = ['hasOwnProperty', 'valueOf', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'constructor'];



这样不就有点多余吗?


这个好像是为了兼容IE的,toString,valueOf这些在IE下默认是枚举不出来的。