JS 对象属性定义、检测与枚举

在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。
    可枚举性决定了这个属性能否被for…in查找遍历到。
    
    判断对象是否可枚举:
        Object 对象的 propertyIsEnumerable() 方法可以判断此对象是否包含某个属性,并且这个属性是否可枚举。
            1. 如果判断的属性存在于Object对象的原型内,不管它是否可枚举都会返回false。
            2. 这个属性必须属于实例的,并且不属于原型.
            3. 这个属性必须是可枚举的,也就是自定义的属性,可以通过for..in循环出来的。

    注意:
        1. js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等
            
    hasOwnProperty(property)
    判断对象是否有某个特定的实例属性。必须用字符串指定该属性
            
    Object.defineProperty定义属性,enumerable描述是否可枚举
    enumerable => false 标识不可枚举
    enumerable => true 标识可枚举
    语法:
        Object.defineProperty(obj, prop, descriptor)
            obj        待修改的对象
            prop        带修改的属性名称
            descriptor        待修改属性的相关描述

    实例:
        const obj = {}
        Object.defineProperty(obj, 'name', {value: 'mike', enumerable: false})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值