对象枚举

对象枚举

枚举其实就是遍历(enumeration)

for in   

目的: 遍历对象

语句:for(var 变量名  in 对象)

var obj = {
        name : "zhangsan",
        sex : 'boy',
        age : 18,
    }
    for(var prop in obj){
        console.log(prop + ' ' + typeof(prop) +' '+ obj[prop]);
    }

控制台就会遍历打印对象里面的属性名。

这里就要注意一下,在for in  枚举里面不能用  对象名.变量名(obj.prop)  来调用对象的属性值 ;

原因是:对象名.变量名(obj.prop)会隐式 转换成    对象名['变量名'](obj['prop']),此时变量名就会当成对象里面的属性名,所以不能调用出对象中的属性值。

正确写法: 对象名[变量名](obj[prop])


1、has OwnProperty

判断属性是不是自己的, 如果是,返回true;不是,返回false

属于过滤性方法

var obj ={
        name : '13',
        age : 123,
        sex : 'male',
        height : 180,
        weight : 75,
        __proto__ : {
            lastName : "deng",
        }
    }
    for(var key in obj){
        if(obj.hasOwnProperty(key)){
            console.log(obj[key]);
        }
    }

打印属性值

由此可见,不会输出__proto__因为它不是obj的属性,他指向object的原型对象。

hasOwnProperty 与for in 一般一起使用,过滤掉不是对象中的属性。


2、in

只能判断在这个对象上调用这个属性

用法: (就上个例子)

‘height’in obj  ----->打印:true

'lastName' in obj  ------>打印:true


3、instanceof 

A 对象  是不是 B构造函数构造出来的

看A对象的原型链上     有没有   B的原型

A    instanceof    B

例如:

function Person() {}
        var person = new Person();
       console.log(person instanceof Object) ;

打印  : true



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值