- 检测是否是私有属性:hasOwnProperty
- for…in… 优先遍历数字属性,而且按照从小到大遍历,再去遍历其他的属性; 无法遍历Symbol的私有属性;【内置类是不可枚举的】
- 获取私有属性:Object.keys(obj) Object.getOwnPropertyNames(obj)
- 获取Symbols:Object.getOwnPropertySymbols(obj)
- 共有或私有属性均可以判断:in
- 判断是否是共有属性:
<script>
Object.prototype.hasPubProperty=function hasPubProperty(attr){
let self=this,
prototype=Object.getPrototypeOf(self);
while(prototype){
if(prototype.hasOwnProperty(attr)) return true;
prototype=Object.getPrototypeof(prototype);
}
return false;
};
</script>