JS中的对象枚举
2020-07-14 05:52
120 查看
for in 循环
遍历对象属性的循环。通过对象属性的个数来控制循环圈数,每一圈将对象的属性名赋值给变量prop ( String类型 )。prop–property
格式:for( xx in obj) { }
var obj = { a : 1, b : 2, c : 3 } for(var prop in obj){ console.log(obj[prop]); } //控制台输出:1 2 3
补充:理论上来说,for in 循环可以返回原型和原型链上的东西,但是一旦原型链延展到了 Object.prototype,就不会返回。
hasOwnProperty()
一种过滤性方法,判断对象是否存在xx属性,不会访问原型。返回bool值true / false。通常与for in循环连用。
格式:obj.hasOwnPorperty ( prop )
var obj = { a : 1, b : 2, c : 3, //加入__proto__属性 __proto__ : { name : "abc" } } for(var prop in obj){ //判断是否是自身的属性,若是则输出 if(obj.hasOwnProperty(prop)){ console.log(obj[prop]); } } //控制台输出:1 2 3
__ proto __ 属于原型属性,调用该方法的返回值为false,故不输出。
in
in与hasOwnProperty()类似,侧重于判断对象能否访问到xx属性(包括原型)。
不同点:in在进行判断时,会访问到对象自己的属性,还会访问对象原型的属性。in使用频率很低。
‘height’ in obj;
返回false;
instanceof
用法与in类似。
格式:A instanceof B
判断A对象是不是B构造函数构造出来的。可以理解为判断A对象的原型链上有没有B的原型。返回bool值。
function Person(){} var person = new Person(); console.log(person instanceof Person); //输出true console.log(person instanceof Object); //输出true console.log([] instanceof Array); //输出true console.log([] instanceof Object); //输出true
相关文章推荐
- 《你不知道的JavaScript》:js对象的属性特性和枚举深入
- js对象枚举
- 从枚举集合取值转换为js对象
- js(六)---对象的枚举和继承
- js---圣杯模式 ,枚举,如何区分数组和对象,callee
- 浅谈 JS 对象添加 getter与 setter 的5种方法以及如何让对象属性不可配置或枚举
- JS 对象属性相关--检查属性、枚举属性等
- JS枚举对象属性的方法及其区别
- JS 对象属性"可枚举"
- JS 对象属性相关(检查属性、枚举属性等)
- JS(十五)继承模式,命名空间,对象枚举(上)
- js--3.对象-5.方法、枚举
- JS 对象属性相关--检查属性、枚举属性等
- JS(十六)继承模式,命名空间,对象枚举(下)
- js对象操作,删除某个属性
- JS HTML DOM对象和脚本函数的互调用(字符串标识)
- js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
- js快速进阶---面向对象&内置对象&继承&RegExp&JSON&BOM&随机点名Demo
- js处理java对象
- js activeElement对象用途