对象枚举
Posted fhzm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象枚举相关的知识,希望对你有一定的参考价值。
var obj={ name:"zzz", age:11, sex:"mal"
}
for(var pro in obj){ console.log(pro)
console.log(obj.pro)//undefined (因为底层转化为obj["prop"],所以把prop当成了属性,于是打印undefined)
console.log(obj[pro])//打印正常
}
会把obj里面的每一个属性名传递给pro
var obj={ name:"zzz", age:11, sex:"mal" __proto__:{ good:"ccc" } } for(var pro in obj){ console.log(pro) console.log(obj.pro)//undefined (因为底层转化为obj["prop"],所以把prop当成了属性,于是打印undefined) console.log(obj[pro])//打印正常 }
这个会把原型上的属性也打印出来,
如果不想要原型上的值可以使用hasOwnPrototype()//判断是不是自己的属性但是不会判断到object.prototype上
var obj={ name:"zzz", age:11, sex:"mal", __proto__:{ good:"ccc" } } for(var pro in obj){ if(obj.hasOwnProperty(pro)){ console.log(pro) } }
in: "name" in obj (判断obj能不能访问到name)
A instanceof B//看A的原型链上有没有B的原型
区别对象{}和数组的[]的三种方法
1.constructor [].constuctor==>ƒ Array() { [native code] } var demo={} demo.constuctor==>ƒ Object() { [native code] }
2.instanceof [] instanceof Array ==>true [] instanceof Object ==>false var demo={} demo instanceof Object ==>true
3.toString Object.prototype.toString.call([])==>"[object Array]" Object.prototype.toString.call(demo)==>"[object Object]"
以上是关于对象枚举的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象