对象属性遍历
定义对象
var obj = {
name: 'aaa',
age: 'bbb',
say: 'ccc',
[Symbol("id")]: 'ddd' //设置Symbol属性
}
Object.defineProperty(obj, 'say', {
//设置obj对象的say不可枚举
enumerable: false
});
for…in
for…in循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)。
Object.keys(obj)
Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。
console.log(Object.keys(obj));
//打印结果
//["name", "age"]
Object.getOwnPropertyNames(obj)
console.log(Object.getOwnPropertyNames(obj));
//打印结果
//["name", "age", "say"]
Object.getOwnPropertySymbols(obj)
console.log(Object.getOwnPropertySymbols(obj));
//打印结果
//[Symbol(id)]
Reflect.ownKeys(obj)
console.log(Reflect.ownKeys(obj));
//打印结果
//["name", "age", "say", Symbol(id)]