美文网首页
javascript中的可枚举属性与不可枚举属性

javascript中的可枚举属性与不可枚举属性

作者: 胡萝卜樱 | 来源:发表于2017-04-28 23:21 被阅读0次

    在javascript中,对象的属性的是否具有枚举性是由enumerable值决定。

    对象是一系列属性和方法的集合
    一个属性包含一个名和一个值

    一,怎么判断属性是否是枚举

    方法一:

    使用for ----in ----遍历

    var num = new Number();
    for(var pro in num) {
        console.log("num." + pro + " = " + num[pro]);
    }
    

    输出结果是空。因为Number中内置的属性是不可枚举的。
    Object对象的propertyIsEnumerable()方法可以判断此对象是否包含某个属性,并且这个属性是否可枚举
    需要注意的是:如果判断的属性存在于Object对象的原型内,不管它是否可枚举都会返回false。

    方法二:

    对象的没个属性都有一个描述对象(descriptor),用来控制属性的行为,Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。

    let obj = { a: 1}
    Object.getOwnPropertyDescriptor(obj, 'a')
    
    结果
    Object {value: 1, writable: true, enumerable: true, configurable: true}
    configurable:true
    enumerable:true
    value:1
    writable:true
    

    描述对象的enumerable属性,称为“可枚举性”,如果该属性为false,标识忽略当前属性

    相关文章

      网友评论

          本文标题:javascript中的可枚举属性与不可枚举属性

          本文链接:https://www.haomeiwen.com/subject/nhoazttx.html