获取属性
- 通过for in 可以获得非Symbol(ES6)的属性
for (prop in obj) {
console.log(prop);
}
- 使用Object提供的方法 返回属性的数组
Object.keys(obj)
获得非Symbol(ES6)的属性Object.getOwnPropertyNames(obj)
获得非Symbol(ES6)的属性Object.getOwnPropertySymbols(obj)
获得Symbol(ES6)的属性
知识点:如果一对象拥有symbol.iterator属性,则该对象可被 for of 遍历
添加属性
- 最简单的方法 直接 .newproperty 赋值
obj.newprop = "新属性的值"; // 新属性会被自动创建
- Object.defineProperty 可以设置一些权限
Object.defineProperty(obj, "属性名", {
configurable: true, // 可删除 delete 对象.属性
enumerable: true, // 可枚举
value: "属性值",
writable: true // 可修改
})
删除属性
delete obj.prop;