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

解决方案 »

  1.   

    {toString: 1} 是一个对象
    所以循环必然进入
      

  2.   

    在mootools有这样一段:
    var enumerables = true;
    for (var i in {toString: 1}) enumerables = null;
    if (enumerables) enumerables = ['hasOwnProperty', 'valueOf', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'constructor'];
    这样不就有点多余吗?
      

  3.   

    那个for循环本来就是不执行的
    toString是不可壮举的属性(方法),就算你重定义toString也还是不可壮举的。
    for(var i in {toString: 1,aaa:2}) {
    alert(i);
      

  4.   


    enumerables 你要看 这个单词什么意思
      

  5.   


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