数据属性和访问器属性
数据属性
- value: 就是属性的值
- writable: 决定属性能否被赋值
- enumerable: 决定for in能否枚举到该属性
- configurable: 决定该属性能否被删除或者改变特征值
访问器属性
- getter: 函数或者是undefined, 在取属性值时被调用
- setter: 函数或者undefined, 在设置属性值时被调用
- enumerable: 决定for in能否枚举该属性
- configurable: 决定该属性能否被删除或者改变特征值
1 2 3 4 5 6 7 8 9 |
|
判断对象的属性是否存在
使用点或者方括号
- obj.x === undefined
- obj[x] === undefined
使用这个方法, 如果对象自身和其原型链上都不存在该属性的话, 会返回undefined, 注意如果对象的原型链上有该属性, 则会返回该属性. 这个方法的局限性在于不能用在对象的属性存在并且属性值为undefined
使用in关键字
'x' in obj
如果指定的属性存在指定的对象或其原型链中, 则返回true
使用hasOwnProperty(), getOwnPropertySymbols()
obj.hasOwnProperty('x')
只有对象自身存在该属性时, 才会返回true
Object.keys()
1 2 3 4 5 6 7 |
|