方法一:通过Object.keys(obj)遍历返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).
Object.keys(obj).forEach(function (key) { console.log(key, obj[key]); })
方法二:通过for..in.. 遍历循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).
for(let i in obj){ console.log(i,obj[i]);}
方法三:通过Object.getOwnPropertyNames(obj)遍历返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).
Object.getOwnPropertyNames(obj).forEach( key => { console.log(key,obj[key]);})
方法四:通过Reflect.ownKeys()遍历返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.
Reflect.ownKeys(obj).forEach( key => { console.log(key,obj[key]);})