`
123003473
  • 浏览: 1064641 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

for in的缺陷

阅读更多
for in 语句用来列举对象的属性(成员),如下
var obj = { name:"jack",  
      getName:function(){return this.name}  
};  
//输出name,getName      
for(var atr in obj) {  
    alert(atr);  
}  



不知注意了吗,没有输出obj的toString,valueOf等内置属性(或称内置成员,隐藏属性和预定义属性)。即for in用来列举对象的显示成员(自定义成员)。

如果重写了内置属性呢,下面就重写obj的toString

var obj = {name:"jack",  
      getName:function(){return this.name},  
       toString:function(){return "I'm jack."}  
};  
  
for(var atr in obj) {  
    alert(atr);  
}



会输出什么呢?
1、IE6/7/8 下和没有重写toString一样,输出name,getName
2、firefox3/chrome2/opera9/safari4下则输出name,getName,toString

总结下:在跨浏览器的设计中,我们不能依赖于for in来获取对象的成员名称。即使用,要小心谨慎。

2010-9-24
IE9 beta重写后可遍历,如{toString:function(){}} 
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    关于js中for in的缺陷浅析.docx

    然而,`for...in`循环在实际应用中存在一些潜在的问题和缺陷,这些缺陷主要体现在以下几个方面: 1. **遍历顺序不固定**:`for...in`循环遍历对象属性时,并不保证属性的遍历顺序,这意味着在不同环境下,相同的...

    关于js中for in的缺陷浅析

    在介绍这些缺陷之前,我们首先要了解for in循环的基本用法和目的。for in循环会遍历对象的所有可枚举属性,并将每个属性名(键)赋值给循环变量,供循环体内部使用。 然而,for in循环有其局限性。首先,它不仅会...

    Javascript for in的缺陷总结

    JavaScript中的`for...in`循环是用来迭代对象的所有可枚举属性,包括那些从原型链继承而来的属性。然而,这个语法结构存在一些显著的缺陷,这些缺陷在处理不同浏览器和JavaScript环境时尤其需要注意。 首先,`for.....

    深度学习IM-IAD工业图像缺陷检测框架学习

    使用趋动云平台复现论文源码IM-IAD: Industrial Image Anomaly Detection Benchmark in Manufacturing主要针对工业领域CV方向异常检测现阶段最先进的方法,构建一套统一开源框架便于后续研究者开发与使用,本文主要...

    MISRA C_2012 Guidelines for the use of the C language in critical systems.pdf

    《MISRA C:2012 Guidelines for the use of the C language in critical systems》是MIRA Limited出版的一本关于C语言在关键系统中使用的指南,适用于汽车工业和其他对软件可靠性有极高要求的领域。MISRA(Motor ...

    hashin失效vumat,hashin失效准则介绍,Fortran

    在IT行业中,尤其是在科学计算和工程模拟领域,Hashin失效准则和VUMAT(User-Defined Material subroutine for Nonlinear Analysis in ABAQUS)是两个非常重要的概念。这两个概念主要应用于复合材料、土木工程等领域...

    基于yolov8实现热轧带钢表面缺陷检测源码+数据集+详细使用教程.zip

    《基于Yolov8实现热轧带钢表面缺陷检测的深度学习实践》 在现代工业生产中,确保产品质量是至关重要的。特别是在钢铁制造领域,热轧带钢的表面缺陷检测是一项关键技术,它能够及时发现并避免产品质量问题,提高生产...

    MISRA C2012 Guidelines for the use of the C language in critical systems.pdf

    MISRA C规则的目的是减少缺陷的发生,并促进代码的可读性、一致性和可维护性。例如,MISRA C规则要求使用const来保护那些不应该被改变的值,限制使用宏、避免不安全的函数,以及禁止使用动态内存分配等。这些规则...

    自动驾驶汽车的缺陷及其产品责任-王乐兵.pdf

    类似地,Sunghyo Kim的文章“Crashed Software: Assessing Product Liability for Software Defects in Automated Vehicles”分析了在自动驾驶汽车中,软件缺陷如何被认定为产品责任。 此外,文章还提到了欧洲共同...

    Failure assessment diagrams for use in R6 assessments for austenitic components

    R6程序的评估重点是组件中缺陷的裂纹起始能力,早期的版本由于对奥氏体材料应变硬化能力的不适应性,在进行缺陷评估时显得不适当。第三版R6修订通过允许引入材料的特有性质,拓宽了它的适用范围,使其适用于包括...

    MISRA C-2012 Guidelines for the C language in critical systems

    遵循MISRA C 2012规范的开发过程可以显著降低软件缺陷率,提高代码质量,使得软件在关键系统中的运行更加安全可靠。然而,由于这些规则严格且详细,实施起来可能会增加开发成本和复杂性,因此需要权衡项目的需求和...

    《BDD IN ACTION:Behavior-Driven Development for the whole software lifecycle》

    ### 《BDD IN ACTION:Behavior-Driven Development for the whole software lifecycle》 #### 行为驱动开发(Behavior-Driven Development, BDD)简介 行为驱动开发(BDD)是一种敏捷软件开发方法,它强调在整个...

    基于卷积神经网络的缺陷检测

    Surface defect detection plays a key role in controlling the quality during manufacturing process for strip steel. However, traditional defect detection of strip steel in industry is still performed ...

    基于改进Res-UNet网络的钢铁表面缺陷图像分割研究.docx

    steel surface defect recognition is an important task in industrial production, and traditional image processing methods have limitations in terms of accuracy and real-time monitoring. This paper ...

    深度学习领域yolov7算法在产品缺陷目标检测(带数据集)-detection-of-product-defects-usin

    Product defects are costly for businesses and can lead to financial and consumer health issues. The current dataset contains 168 image files with a total of 1859 jar lids, on average 11 per image. ...

Global site tag (gtag.js) - Google Analytics