遍历对象属性

初始化对象:

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;

时间: 2024-08-24 03:33:31

遍历对象属性的相关文章

JS/jQuery 遍历对象属性

Javascript For/In 循环: 循环遍历对象的属性 var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=txt + person[x]; } 结果:JohnDoe25 jQuery jQuery.each() 遍历对象属性 var arr = ["one", "two", "three", "fou

高性能 javaScript 之遍历对象属性

在面向对象的开发工作中,经常会遇到检查对象属性和遍历对象属性的情况. JavaScript 不包含如 java.C 等语言的传统类继承模型,而是使用 prototype 原型模型. JavaScript 原型链继承中属性查找过程 当查找一个对象的属性时,JavaScript 会向上遍历原型链,直到找到给定名称的属性为止.到查找到达原型链的顶部 - 也就是 Object.prototype - 但是仍然没有找到指定的属性,就会返回 undefined. 使用 for in 循环可以遍历对象所有的属

遍历对象属性(for in、Object.keys、Object.getOwnProperty)

js中几种遍历对象的方法,包括for in.Object.keys.Object.getOwnProperty,它们在使用场景方面各有不同. for in 主要用于遍历对象的可枚举属性,包括自有属性.继承自原型的属性 var obj = {"name":"Poly", "career":"it"} Object.defineProperty(obj, "age", {value:"forever

ES6之6种遍历对象属性的方法

1.for ... in 循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). 2.Obejct.keys(obj),返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性). 3.Object.getOwnPropertyNames(obj),返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性). 4.Object.getOwnPropertySymbols(obj),返回一个数组,包含对象自身的所有Symbol属性. 5.Ref

遍历对象属性值

将对象内的属性以及属性值输出 public static string ToProperties_V(this object obj) { if (obj == null) return ""; var s = obj.GetType(); StringBuilder app = new StringBuilder(); foreach (var item in s.GetProperties()) { app.Append($"{item.Name}:{item.GetVa

C#遍历对象属性

1 public void EachProperties() 2 { 3 Contract contract = new Contract { employeename = "Rikas" }; 4 Type type = contract.GetType(); 5 System.Reflection.PropertyInfo[] ps = type.GetProperties(); 6 foreach (PropertyInfo i in ps) 7 { 8 if (i.Proper

JS中遍历对象属性的四种方法

Object.keys().Object.values().Object.entries().for...in.Map (1)Object.keys(): let ex1 = {c1: 'white',c2: 'black'} let ex2 = {c3: 'green',c4: 'yellow'} Object.setPrototypeOf(ex1 ,ex2 ):Obejct.keys(ex2 ) === ['c3','c4']           ex2['c3'] === 'green'

【反射】遍历对象属性名与值

public string GetProperties<T>(T t) { string tStr = string.Empty; if (t == null) { return tStr; } System.Reflection.PropertyInfo[] properties = t.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public

js之oop &lt;二&gt; 对象属性

js中对象属性可以动态添加和删除.删除对象属性用delete关键字. function obj(){ } var oo = new obj(); oo.a = "a"; oo.b = "b"; oo.a; //输出a oo.b; //输出b delete oo.a; oo.a; //输出undefined 在js中对象的属性以键值对的方式来体现,且(在遍历时)无序.js中属性名(也就是key)可以用点来访问(或赋值),也可以用中括号key值来访问(或赋值)(用中括号