js 对象遍历

先介绍一下对象的可枚举属性和不可枚举属性

js中 ,对象的属性可分为可枚举属性和不可枚属性,是否可枚举由属性的enumerable的值决定。最简单的方法便是for in遍历出来的属性都是可枚举的属性(包括自己的属性可继承的属性)

2、 for  in

遍历对象的可枚举属性,包括自有属性和继承自原型的属性

const Person= function() {
  this.name = '埼玉';
};
Person.prototype.age = 19;
const perdsonOne= new Person();
Object.defineProperty(perdsonOne, 'metal', { // 定义一个新的属性 可枚举设置为false
  enumerable: false,
  configurable: false,
  writable: false,
  value: '男'
});
for (const key in perdsonOne) {
  console.log(key);
}

上图可以看的出 personOne中只有name属性,但是使用for in 后我们可以遍历出其继承的age属性

2、Object.keys()

方法返回一个数组,元素均为对象自有可枚举的属性(仅仅是自己拥有的属性 没有继承的)

console.log(Object.keys(personOne))

3、Object.getOwnProperty()

方法返回一个数组,元素为对象的所有属性(包括可枚举属性和不可枚举属性)

4、Reflect.ownKeys()

这个不是很熟 自己去查吧

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值