zoukankan      html  css  js  c++  java
  • JavaScript 属性描述符

    属性描述符(Property Descriptor)是 ES5 之后出现的概念,顾名思义,它用于描述属性应该是什么样,例如是否只读,能否枚举,能否可配置等。所有对象属性均可使用属性描述符来定义。

    属性描述符的六个属性

    • value

      • 属性值。
    • writable

      • 是否允许赋值,true 表示允许,否则该属性不允许赋值。
    • get

      • 返回属性值的函数。如果为 undefined 则直接返回描述符中定义的 value 值。
    • set

      • 属性的赋值函数。如果为 undefined 则直接将赋值运算符右侧的值保存为属性值。
    • configurable

      • 如果为 true,则表示该属性可以重新定义描述符,或者从属性的宿主删除。缺省为 true
    • enumerable

      • 如果为 true,则表示遍历宿主对象时,该属性可以被遍历到。缺省为 true

    Object 操作属性的方法

    • Object.defineProperty(obj, prop, descriptor)

      • 使用描述符 descriptor 定义 objprop 属性。
    • Object.getOwnPropertyDescriptor(obj, prop)

      • 获取 objprop 属性描述符。
    • Object.preventExtensions(obj)

      • 禁止为当前对象 obj 添加新属性。
    • Object.seal(obj)

      • 封印当前对象 obj,禁止添加新属性,并且将所有现有属性 configurable 设置为 false
    • Object.freeze(obj)

      • 冻结当前对象 obj,禁止增加新属性,禁止删除现有属性或修改属性描述符,相当于将该 obj 变成了 immutable
    • Object.isExtensible(obj)

      • 判断当前对象 obj 是否允许扩展。
    • Object.isSealed(obj)

      • 判断当前对象 obj 是否被封印。
    • Object.isFrozen(obj)

      • 判断当前对象 obj 是否被冻结。
    • Object.prototype.hasOwnProperty(prop)

      • 判断当前对象是否拥有 prop 属性。
  • 相关阅读:
    MSP430G2553 4x4矩阵键盘
    数论 (1)
    吐血分享一款免费看所有付费影视的app,不好用来石欠我
    Nginx如何部署静态web项目
    SpringBoot-RestTemplate实现调用第三方API
    信息收集小技巧
    kali常用命令
    kali中的Firefox改中文
    反射与注解
    MyBatis-Plus 基本用法
  • 原文地址:https://www.cnblogs.com/ifantastic/p/5986571.html
Copyright © 2011-2022 走看看