let triangle={ a:1, b:2, c:3 } function coloTriangle(){ this.color='red'; } coloTriangle.prototype=triangle; let color=new coloTriangle(); Object.defi ...
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"]