码迷,mamicode.com
首页 > 其他好文 > 详细

遍历对象属性

时间:2016-09-12 14:06:16      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

 初始化对象:

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")); // true
console.log(p.propertyIsEnumerable("age")); //false

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

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

 

遍历对象属性

标签:

原文地址:http://www.cnblogs.com/bibiafa/p/5864383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!