获取Object对象的方法,Reflect.ownKeys, Object.getOwnPropertyNames,Object.getOwnPropertySymbols,Object.keys,f

let triangle={ a:1, b:2, c:3 }

 

function coloTriangle(){ this.color='red'; }

 

coloTriangle.prototype=triangle; let color=new coloTriangle(); Object.defineProperty(color,'auto',{ value:'auto' }) let symbolProp=Symbol('symbol'); color[symbolProp]='symbol' /** * Reflect.ownKeys:Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols) * 没有来自继承的,都是own * 不管枚举不枚举都能遍历 * 还可以拿到symbol类型属性 */ Reflect.ownKeys(color) //["color","auto",Symbol(symbol)]

 

/** * Object.getOwnPropertyNames * 没有来自继承,都是own * 不管枚举不枚举都能遍历 * 拿不到symbol类型属性 */ Object.getOwnPropertyNames(color);//["color","auto"]

 

/** * Object.getOwnPropertySymbols * 只能own * 也不管枚举不枚举 * 只能拿到Symbol类型属性 */

 

Object.getOwnPropertySymbols(color);//[Symbol(symbol)]

 

/** * Object.keys就有点矫情了 * 只能是own * and 要枚举才行 * 拿不到Symbol类型属性 * */ Object.keys(color);//["color"]



/** * for in 就是也是取其一把 * 不需要own,可以来自继承属性 * 但是一定会要枚举 * 拿不到Symbol类型属性 */ for(let i in color){ console.log(i);//color a b c }         哈哈哈 还有什么的话欢迎补充
上一篇:500以内所有的奇数偶数


下一篇:How to monitor your mobile application network traffic in your own LAPTOP