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"]