1.for in 主要用于遍历对象的可枚举属性,例如自有属性,继承自原型的属性:
let obj = {name:'冯雪娟',age:'20'};
//增加不可枚举的属性sex:
Object.defineProperty(obj,'sex',{value:'femal',enumerable:false});
Object.prototype.fn=function(){console.log('这是一个函数')};
Object.prototype.address = '成都';
for(let key in obj) {
console.log(key + ':'+ obj[key])
}
2.Object.keys() 返回一个对象的key值数组,数组的元素为对象自有可枚举属性:
let obj = {name:'冯雪娟',age:'20'};
//增加不可枚举的属性sex:
Object.defineProperty(obj,'sex',{value:'femal',enumerable:false});
Object.prototype.fn=function(){console.log('这是一个函数')};
Object.prototype.address = '成都';
console.log(Object.keys(obj))
3.Object.values() 返回一个对象的value值数组,数组的元素为对象自有可枚举属性:
let obj = {name:'冯雪娟',age:'20'};
//增加不可枚举的属性sex:
Object.defineProperty(obj,'sex',{value:'femal',enumerable:false});
Object.prototype.fn=function(){console.log('这是一个函数')};
Object.prototype.address = '成都';
console.log(Object.values(obj))
4.Object.getOwnPropertyNames() 返回一个对象的自有属性数组,包括可枚举和不可枚举属性,不包括继承自原型的属性:
let obj = {name:'冯雪娟',age:'20'};
//增加不可枚举的属性sex:
Object.defineProperty(obj,'sex',{value:'femal',enumerable:false});
Object.prototype.fn=function(){console.log('这是一个函数')};
Object.prototype.address = '成都';
console.log(Object.getOwnPropertyNames(obj))