JS 遍历对象所有的属性和值(包括子属性)

代码:

let user = {
  name: 'john',
  age: 17,
  date: new Date(),
  date1: null,
  order: {
    id: 123,
    price: '19yuan'
  },
  sayHi: function(){}
}

user.sayHi.content = "hello";

let person = {isHuman: true};

user.__proto__ = person;//指定user的原型对象为person

function iterateThroughAllKeysAndValues(obj) {
  for(let key in obj) {
    if(!obj.hasOwnProperty(key)) return;//排除掉原型继承而来的属性
    console.log(key, obj[key]);
    if(typeof obj[key] == 'object' || typeof obj[key] == 'function') {
      iterateThroughAllKeysAndValues(obj[key]);//递归遍历属性值的子属性
    }
  }
}

iterateThroughAllKeysAndValues(user)

知识点

  • for…in 遍历对象的所有属性,包括对象的原型属性,但不包括自身和原型的不可枚举的属性
  • obj.hasOwnProperty(key) 判断属性是否是自身拥有的属性
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值