语法: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、访问器属性
原文地址:https://www.cnblogs.com/jokes/p/9250463.html
时间: 2024-11-09 03:46:13