我有一个像这样的文字对象
变量 O={ toString:函数(){ // 这里有一些代码 }, 另一个方法:函数(){ // 这里有一些代码 } }
我用 for-in 循环遍历对象
for(var p in O){ // 一些带有 p 和 O[p] 的东西 }
问题是 toString 属性不会在 IE 浏览器的循环中捕获!
我有一个像这样的文字对象
变量 O={ toString:函数(){ // 这里有一些代码 }, 另一个方法:函数(){ // 这里有一些代码 } }
我用 for-in 循环遍历对象
for(var p in O){ // 一些带有 p 和 O[p] 的东西 }
问题是 toString 属性不会在 IE 浏览器的循环中捕获!
阅读此页面: Mozilla 开发者中心的ECMAScript DontEnum 属性。基本上,这是一个 JScript 错误。
JScript 将跳过对象原型链中具有 DontEnum 属性的同名属性的任何对象中的任何属性。如果原型链中存在具有 DontEnum 特性的属性,或者如果实例属性标记为 DontEnum,则不会枚举它,而不管程序员为该属性定义的值如何。JScript 没有正确检查 DontEnum 属性。