IE的for...in循环存在严重的缺陷,除了性能低下外,有许多属性不可遍历,著名有这三兄弟:constructor ,toString ,valueOf。但实际情况更恐怖。下面是来自火狐官网的测试代码:

var ret = (function(){
var obj = {
    constructor : function() { return "0"; }
    ,toString : function() { return "1"; }
    ,valueOf : function() { return "2"; }
    ,toLocaleString : function() { return "3"; }
    ,prototype : function() { return "4"; }
    ,isPrototypeOf : function() { return "5"; }
    ,propertyIsEnumerable : function() { return "6"; }
    ,hasOwnProperty : function() { return "7"; }
    ,length: function() { return "8"; }
    ,unique : function() { return "9" }
};
 
var result = [];
for(var prop in obj) {
	result.push(obj[ prop ]());
}

return result.join("");
})(); 

结果:

IE6 IE8 FF3.6 opera10 chrome4 safari4
489 489 0123456789 0123456789 0123456789 0123456789

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
  • 2021-12-26
  • 2022-12-23
猜你喜欢
  • 2021-11-05
  • 2021-06-10
  • 2021-06-20
  • 2021-04-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案