Object.defineProperty

Posted

tags:

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

最近在看cesium时很多js语法看不懂,今天就差不多搞懂了一个Object.defineProperty的用法,不废话直接上代码

 

 1 var defineProperty = Object.defineProperty;
 2     var obj = {
 3         id : 1,
 4 
 5     };
 6     defineProperty(obj,‘name‘,{
 7         value : ‘wtw‘,
 8         configurable:false,
 9         enumerable:true,
10         writable:false,//obj.name = ‘vv‘;赋值会失败,
11 
12     });
13     

上述代码给obj对象添加了一个 name 属性       并且配置了相应的属性描述符

数据描述符和存取描述符均具有以下可选键值:

configurable
当且仅当该属性的 configurable 为 true 时,该属性描述符才能够被改变,同时该属性也能从对应的对象上被删除。默认为 false
enumerable
当且仅当该属性的enumerabletrue时,该属性才能够出现在对象的枚举属性中。默认为 false

数据描述符同时具有以下可选键值:

value
该属性对应的值。可以是任何有效的 javascript 值(数值,对象,函数等)。默认为 undefined
writable
当且仅当该属性的writabletrue时,该属性才能被赋值运算符改变。默认为 false。//所以上述obj.name = ‘vv‘才会失败

以上是关于Object.defineProperty的主要内容,如果未能解决你的问题,请参考以下文章

Object.defineProperty的理解思路

20+行代码使用es5 Object.defineProperty 实现简单的watch功能

解析神奇的 Object.defineProperty

解析 神奇的 Object.defineProperty

解析神奇的 Object.defineProperty

Vue双向绑定的关键:Object.defineProperty()