1. 程式人生 > >Reflact.ownKeys() 和 Object.keys() 的區別

Reflact.ownKeys() 和 Object.keys() 的區別

Reflect.ownKeys() 返回所有屬性 key(包括方法)

var obj = {}
Object.defineProperty(obj, 'method1', {
    value: function () {
         alert("Non enumerable property");
    },
    enumerable: false
})

console.log(Object.keys(obj))
// []
console.log(Reflect.ownKeys(obj))
// ["myMethod"]

Object.keys() 返回屬性 key,但不包括方法屬性

const obj = {
    id1: 42,
    id2: 13
};
console.log(Object.keys(obj))
// ['id1', 'id2']
console.log(Reflect.ownKeys(obj))
// ['id1', 'id2']