你的位置:首页 > Java教程

[Java教程]遍历对象属性


 初始化对象:

var person = function(name){  this._name = name;}var grand = function(){  this.city = "sh";}grand.prototype.age = 18;    person.prototype = new grand();

1. for in 不仅能遍历自身的可枚举属性,还遍历原型对象中的可枚举属性

var p = new person();for(var key in p){  console.log(key)}

结果:

_name

city

age

2. Object.keys(object); 遍历对象自身的可枚举属性

var keys = Object.keys(p);for(var key in keys){  console.log(key+":"+keys[key])}

结果:

0:_name

3.object.hasOwnProperty(propertyName); 检测propertyName是否是object的自身属性

即使属性是不可遍历的,只要它存在于object对象中,就返回true

Object.defineProperty(p,"home",{  value:"nanjing",  enumerable:false});
console.log(p.hasOwnProperty("home")); // true

4.object.propertyIsEnumerable(propertyName); //检测propertyName是否可遍历

propertyName必须是自身的属性,如果属性存在于原型对象上,即使属性可遍历,也返回false

Object.defineProperty(p,"home",{  value:"nanjing",  enumerable:true});console.log(p.hasOwnProperty("home")); // trueconsole.log(p.propertyIsEnumerable("age")); //false

"home"是对象自身属性,且可遍历

"age"存在于原型对象上,返回false;