for/in 循环遍历对象的属性
平时想要遍历一个对象时一般会采用for/in语句,通过for/in语句可以快速地拿到对象的key和value值
举个小栗子:
var obj = {name:'wan',age:24};
for(var key in obj){
console.log(key); //name age
console.log(obj[key]); //wan 24
}
可是,使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问:
function Pro(name, age){
this.name = name;
this.age = age;
}
Pro.prototype.hobby = '羽毛球';
Pro.prototype.qq = '123';
var pro1 = new Pro('wan',24);
console.log(pro1);
for(var p in pro1){
console.log(p); //会打印所有属性,包含原型链上的
}
可是,如果要只遍历对象自身的属性呢,今天刚刚看到这个问题时,我一下子没想起来,可以利用对象的hasOwnProperty属性做一个筛选
for(var p in pro1){
if (pro1.hasOwnProperty(p)) {
console.log(p); //这样,打印的属性就只包含对象自己的了
}
}
很多时候,看到一些零碎的知识点,不去真正用上的话,看了就忘记了,知识还是得多用才记得牢,谨记!
参考文章:https://www.cnblogs.com/yuqingfamily/articles/5799907.html
for/in 循环遍历对象的属性的更多相关文章
- javascript遍历对象的属性
不同类型的循环 JavaScript 支持不同类型的循环: for - 多次遍历代码块 for/in - 遍历对象属性 while - 当指定条件为 true 时循环一段代码块 do/while - ...
- React技巧之循环遍历对象
原文链接:https://bobbyhadz.com/blog/react-loop-through-object 作者:Borislav Hadzhiev 正文从这开始~ 遍历对象的键 在React ...
- js遍历对象的属性和方法
js遍历对象的属性和方法 一.总结 二.实例 练习1:具有默认值的构造函数 实例描述: 有时候在创建对象时候,我们希望某些属性具有默认值 案例思路: 在构造函数中判断参数值是否为undefined,如 ...
- JS遍历对象的属性和值
对于需要动态获取对象的某些属性和对应的值的时候,就需要遍历对象的属性和值. const user = { name: '张三', age: 20, addr: '湖北武汉', sex: '男' } / ...
- cocos2d JS-(JavaScript) 几种循环遍历对象的比较
通常我们会用循环的方式来遍历数组.但是循环是 导致js 性能问题的原因之一.一般我们会采用下几种方式来进行数组的遍历: 方式1: for in 循环: var arr = [1,2,3,4,5]; v ...
- javaScript for in循环遍历对象
for循环常被我们用来遍历数组,而如何遍历对象呢? 这时就需要用到for in循环了 写一个遍历对象名简写如下: for(var xxx in ooo){console.log(xxx)} 其中xxx ...
- js遍历对象的属性并且动态添加属性
var person= { name: 'zhangsan', pass: '123' , 'sni.ni' : 'sss', hello:function (){ for(var i=0;i< ...
- JS完成页面跳转并传参的方法|附加:循环遍历对象
此方法只能传递较少参数 方法如下: <a href='page/index.html'>跳转</a> 以上是正常写法,如果要传参按一下写法: <!--参数写在?后面,多个 ...
- js中遍历对象的属性和值的方法
鉴于循环目标是个对象,length是为undefined,用map等对数组的循环方法不行,对象就用此下方法 for(var key in _this.lists.medicines){ medicin ...
随机推荐
- JIRA 敏捷开发平台部署记录
1.1 jira说明 JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域. JIRA中配置灵活.功能全 ...
- 主从DB与cache一致性
本文主要讨论这么几个问题: (1)数据库主从延时为何会导致缓存数据不一致 (2)优化思路与方案 一.需求缘起 上一篇<缓存架构设计细节二三事>中有一个小优化点,在只有主库时,通过" ...
- Asp.net mvc 知多少(五)
本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问http:/ ...
- sqlser 2005 使用执行计划来优化你的sql
一:sqlserver 执行计划介绍 sqlserver 执行计是在sqlser manager studio 工具中打开,是检查一条sql执行效率的工具.建议配合SET STATISTICS ...
- Subscription wildcards(MQTT)
想查看英文原文的请点击原文网址.本文是paho中讲述订阅通配符的.还是那句话,水平有限,如有翻译不当之处,欢迎指正. 订阅通配符 MQTT信息包含一个主题来进行区分.MQTT服务器使用主题来确定哪 ...
- SpringBoot里mybatis查询结果为null的列不返回问题的解决方案
对于mybatis里查询结果为null的列不返回的问题解决方案 在配置文件application.properties里增加 Mybatis.configuration.call-setters-on ...
- jar包后台启动--nohup篇
直接java -jar TestHttps-0.0.1-SNAPSHOT.jar的话是前段启动,但是窗口关闭之类的程序也就关闭了 我们可以nohup java -jar TestHttps-0.0.1 ...
- Eclipse 问题整理
新建servlet报错,提示找不到javax.servlet包 解决的方法:把tomcat安装包里的lib目录下的servlet-api.jar拷贝一份到工程文件夹下的web目录下的WEB-INF目录 ...
- Swift tableview自带的刷新控件
import UIKit class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { let ...
- Spark源码剖析(一):如何将spark源码导入到IDEA中
由于近期准备深入研究一下Spark的核心源码,所以开了这一系列用来记录自己研究spark源码的过程! 想要读源码,那么第一步肯定导入spark源码啦(笔者使用的是IntelliJ IDEA),在网上找 ...