JavaScript 获取属性列表的方法
Object.getOwnPropertyNames(obj)
非 symbol 值
Object.getOwnPropertySymbols(obj)
symbol 值
Object.keys/values()
带有 enumerable
标志的非 symbol 键/值
for...in
循环遍历所有带有 enumerable
标志的非symbol 键,以及原型对象的键
Object.create(null)
创建的对象上没有 hasOwnProperty
方法
var foo = Object.create(null);
// 报错,foo 没有 hasOwnProperty 方法
var hasBarProperty1 = foo.hasOwnProperty('bar');
// Eslint 推荐改成:
var hasBarProperty2 = Object.prototype.hasOwnProperty.call(foo, 'bar');