我有一个像这样的文字对象
var O={ toString:function(){ // some code here }, anotherMethod:function(){ // some code here } }
我通过for-in循环遍历对象
for(var p in O){ // some stuff with p and O[p] }
问题是toString属性不会在IE浏览器的循环中捕获!
答案 0 :(得分:2)
在Mozilla开发人员中心阅读此页面:ECMAScript DontEnum attribute。基本上,这是一个JScript错误。
JScript将跳过任何属性 任何有同名的对象 对象原型中的属性 具有DontEnum属性的链。 如果属性与DontEnum 属性存在于原型中 链,或者如果实例属性是 标记为DontEnum,未列举, 无论程序员定义了什么 该属性的值。 JScript有 没有正确检查DontEnum 属性。