关于for in的冷门知识点及hasOwnProperty的用法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 07:20   45   0

1.

var obj = {
   name:"AAA",
   age:18,
   sex:"male",
   __proto__:{Lastname:"Pan"}
  };
  for(var key in obj){
   if(obj.hasOwnProperty(key)){

    console.log(key);
    
   }
  }

通过枚举,打印出对象obj里的每个属性name,age,sex。

其中,关于hasOwnPreperty()的用法:

hasOwnPreperty()剔除原型链上的属性,如果是true,说明不是原型的属性

1. if(obj.hasOwnPreperty(key)){console.log(obj[key])}即不会把原型上的属性一起打印出来
2. if(!obj.hasOwnPreperty(key)){console.log(obj[key])},只打印原型上的属性,


2.

var obj = {
   name:"AAA",
   age:18,
   sex:"male",
   __proto__:{Lastname:"Pan"}
  };
  for(var key in obj){
   if(obj.hasOwnProperty(key)){
    
    console.log(obj[key]);
    
   }
  }

属性表示方法:
// 1.obj.key
// 2.obj[字符串]或[变量 k ]

采用访问属性的第二种方法Obj[变量 k],打印出对象的每个属性值


3.

var obj = {
   name:"AAA",
   age:18,
   sex:"male",
   __proto__:{Lastname:"Pan"}
  };
  for(var key in obj){
   if(obj.hasOwnProperty(key)){
    
    console.log(obj.key);
    
   }
  }

结果会报错,因为有个转换过程:obj.key ---> obj["key"],把变量 key设置为字符串了,当做是某个常量的属性名。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP