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删除 查看此书详细信息请在美国亚马逊官网搜索此书
JavaScript应用实例-004-循环for.js
《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删除 ...
JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之for循环语句(源代码)JavaScript之...
## for-in循环 `for-in`循环用于遍历对象的可枚举属性。通常用于对象和数组,但是在数组上的使用受到限制和争议。当使用`for-in`循环遍历数组时,它实际上返回的是数组元素的键(索引),而不是它们的值。 ```js ...
但是,在某些情况下,我们可能需要限制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来控制一组图片...
Asabeneh_JavaScript-for-Everyo_1743013152
在JavaScript编程领域中,"循环显示的文字"是一个常见的动态效果,常用于网页的欢迎语、滚动公告或广告展示。这个效果使得文字能够在页面上不断滚动或循环播放,从而吸引用户的注意力。下面我们将深入探讨如何使用...
本项目“基于HTML、JavaScript、CSS的Garden-App智慧园林设计源码”正是在这样的背景下应运而生,它的开发基于现代网页技术,具备了丰富的交互功能和高度的兼容性。 HTML、JavaScript和CSS是构建现代网页应用不可或...
在Vue.js中,v-for循环是模板编程中的关键特性,用于动态渲染列表或者遍历数据。以下六个技巧可以帮助你写出更高效、可维护的v-for循环: 1. **始终在v-for循环中使用`:key`** 在使用v-for时,应该给每个迭代元素...
在这个实例中,我们将详细探讨如何使用 `v-for` 直接循环数字。 在Vue中,`v-for` 的基本语法是这样的: ```html <element v-for="(item, index) in array" :key="index"> ``` 通常,`v-for` 与数组配合使用,但...
ArcGIS-API-for-Javascript-Web应用开发.pptx
本教程将聚焦于一个经典的JavaScript特效——文字循环隐现,它能为网站增添视觉吸引力,提升用户体验。 首先,要理解这个特效的工作原理,我们需要知道JavaScript如何操作HTML中的文本元素。在HTML中,我们可以使用...