获取对象所有私有成员「兼容到IE、不受枚举和类型的限制」

    1. const ownKeys = function ownKeys(obj) {
    2. if (!isObject(obj)) throw new TypeError('传递的obj不是一个对象')
    3. let keys = Object.getOwnPropertyNames(obj)
    4. if (typeof Symbol !== 'undefined') {
    5. keys = keys.concat(Object.getOwnPropertySymbols(obj))
    6. }
    7. return keys
    8. }
    1. const ownKeys = function ownKeys(obj) {
    2. // 确保传递的是对象
    3. if (!isObject(obj)) throw new TypeError('传递的obj不是一个对象')
    4. // 验证是否支持Reflect
    5. if (typeof Reflect !== 'undefined') return Reflect.ownKeys(obj)
    6. return Object.getOwnPropertyNames(obj)
    7. }

    注意:用到isObject方法