for in
循环
和 in
操作符一样,for in
循环同样在查找对象属性时遍历原型链上的所有属性。
注意: for in
循环不会遍历那些 enumerable
设置为 false
的属性;比如数组的 length
属性。
// 修改 Object.prototype
Object.prototype.bar = 1;
var foo = {moo: 2};
for(var i in foo) {
console.log(i); // 输出两个属性:bar 和 moo
}
由于不可能改变 for in
自身的行为,因此有必要过滤出那些不希望出现在循环体中的属性,
这可以通过 Object.prototype
原型上的 hasOwnProperty
函数来完成。
注意: 由于 for in
总是要遍历整个原型链,因此如果一个对象的继承层次太深的话会影响性能。
使用 hasOwnProperty
过滤
// foo 变量是上例中的
for(var i in foo) {
if (foo.hasOwnProperty(i)) {
console.log(i);
}
}
这个版本的代码是唯一正确的写法。由于我们使用了 hasOwnProperty
,所以这次只输出 moo
。
如果不使用 hasOwnProperty
,则这段代码在原生对象原型(比如 Object.prototype
)被扩展时可能会出错。
一个广泛使用的类库 Prototype 就扩展了原生的 JavaScript 对象。
因此,但这个类库被包含在页面中时,不使用 hasOwnProperty
过滤的 for in
循环难免会出问题。
总结
推荐总是使用 hasOwnProperty
。不要对代码运行的环境做任何假设,不要假设原生对象是否已经被扩展了。
分享到:
相关推荐
PHP, MySQL & JavaScript All-in-One For Dummies 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
开源项目“pazams-go-for-javascript-developers”旨在为JavaScript开发者提供一个平滑的学习曲线,帮助他们过渡到Go语言的世界。这个项目不仅包含了一个详细的教程,还提供了丰富的实践示例,使得JavaScript背景的...
《ArcGIS for JavaScript API完全指南》 ArcGIS for JavaScript API是Esri公司提供的一款用于构建地理信息系统(GIS)Web应用程序的开发工具集。它允许开发者使用JavaScript语言在Web浏览器中创建交互式的地图应用...
PHP, MySQL, JavaScript All-in-One For Dummies 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 ...
但是,在某些情况下,我们可能需要限制v-for循环的次数,而不是遍历整个数组。这篇文章将详细探讨如何在Vue中控制v-for循环的次数。 首先,我们可以通过数组的slice方法来截取数组的一部分,从而控制循环的次数。...
2. **循环逻辑**:然后,定义一个函数来执行弹出警告框的动作,并在函数内部使用`while`或`for`循环来控制弹出次数。循环条件可能是计数器未达到预设值,或者用户没有关闭警告框。 3. **暂停与恢复**:为了防止过度...
ArcGIS JavaScript API 介绍与示例 ArcGIS JavaScript API 是 ESRI 提供的一种基于 JavaScript 的开发工具,允许开发者创建交互式的 Web 地图应用程序。本文将对 ArcGIS JavaScript API 进行详细的介绍,并提供多个...
JavaScript应用实例-003-循环break.js
JavaScript应用实例-005-循环while.js
标题"javascript经典特效---图片循环显示"涉及到的就是使用JavaScript来实现一个图片轮播(或称图片循环显示)的效果,这是网页设计中常见的视觉呈现方式。 图片循环显示的基本原理是通过JavaScript来控制一组图片...
在这个实例中,我们将详细探讨如何使用 `v-for` 直接循环数字。 在Vue中,`v-for` 的基本语法是这样的: ```html <element v-for="(item, index) in array" :key="index"> ``` 通常,`v-for` 与数组配合使用,但...
本教程将聚焦于一个经典的JavaScript特效——文字循环隐现,它能为网站增添视觉吸引力,提升用户体验。 首先,要理解这个特效的工作原理,我们需要知道JavaScript如何操作HTML中的文本元素。在HTML中,我们可以使用...
其中,“for/in循环”是JavaScript中一个非常有用的循环结构,主要用于遍历对象的可枚举属性,也可以用于数组。然而,在使用for/in循环时,有一些细节和技巧需要了解和掌握,以确保代码的正确性和效率。本篇文章将...
首先,我们需要理解`v-for`循环在Vue中的工作原理。`v-for`是用来遍历数组或对象的指令,其基本语法如下: ```html <element v-for="item in items" :key="item.id"> <!-- 内容 --> ``` 这里的`items`是你要遍历...
JavaScript应用实例-王者荣耀循环挑战一个脚本.js
ArcGIS for JavaScript API ArcGIS for JavaScript API 是一款功能强大且灵活的 API,用于构建基于 Web 的 GIS 应用程序。该 API 提供了丰富的功能和工具,帮助开发者快速构建功能强大且交互式的 GIS 应用程序。本...
mod会循环遍历每个未锁定的图块,然后尝试根据激活的内容进行自动收获或自动种植。 自动收获 首先,它将检查图块是否为空。 如果不是,它将检查植物是否不朽。 如果是,并且“避免不朽”选项为ON ,
在使用Vue框架开发前端应用时,经常会遇到需要动态加载图片资源的情况,特别是利用v-for指令循环渲染列表元素时。正确地使用v-for循环和动态绑定图片源地址(src)对于提高开发效率和页面性能至关重要。 首先,我们...
se wheel to zoom in/out</li> </ul> </body> 在这个示例中,我们深入了解了如何使用 ArcGIS JavaScript API 来创建一个...通过学习和实践这些示例,可以从基础到进阶掌握 ArcGIS for JavaScript API 的使用技巧。