属性类型(数据属性访问器属性)

Posted jokes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了属性类型(数据属性访问器属性)相关的知识,希望对你有一定的参考价值。

语法:
Object.defineProperty(obj, prop, descriptor)
1、数据属性
实例1:单个属性的建立
    var person = {};
    Object.defineProperty(person,‘name‘,{
        value:‘zhangsan‘,//属性的值
        writable:false,//不能更改
        configurable:false,//不能删除
        enumerable:false //不能for-in遍历
    });

默认情况下:true

writable:false||true
configurable:false||true
enumerable:false||true

实例2:多个属性的建立
var person = {};
    Object.defineProperties(person,{
        name:{
            value:‘zhangsan‘,
            writable:false,//||true
            configurable:false,//||true
            enumerable:false,//||true
        },
        sex:{
            value:‘nan‘,
            writable:false,//||true
            configurable:false,//||true
            enumerable:false,//||true
        },
        age:{
            value:23,
            writable:false,//||true
            configurable:false,//||true
            enumerable:false,//||true
        }
    });

实例3:

描述符:descriptor 

再通俗一点,比如你在 面向对象 编程中 定义一个(没有定义方法)类:class person , 在这个类里面,有name,age, heigth, weight,等等属性, 这个类就可以看作一个对 person 的描述符,而具体的实例则是具体的“被描述物”
 
 
描述符可同时具有的键值
 
 
  configurable enumerable value writable get set
数据描述符 Yes Yes Yes Yes No No
存取描述符 Yes Yes No No Yes Yes

如果一个描述符不具有value,writable,get 和 set 任意一个关键字,那么它将被认为是一个数据描述符。如果一个描述符同时有(value或writable)和(get或set)关键字,将会产生一个异常。

地址:https://developer.mozilla.org/zh-CN/docs/Web/javascript/Reference/Global_Objects/Object/defineProperty
 
 

2、访问器属性




 









以上是关于属性类型(数据属性访问器属性)的主要内容,如果未能解决你的问题,请参考以下文章

Js中的数据属性和访问器属性

JavaScript | 数据属性与访问器属性

JS中的数据属性和访问器属性

js中的访问器属性中的getter和setter函数实现数据双向绑定

使用 C++ 包装器时如何访问 C# .dll 属性

浅谈js对象之数据属性访问器属性Object.defineProperty方法