对象枚举

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对象

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

Java 枚举类的基本使用

PAT1049-----枚举法,找规律题,注意降低时间复杂度