在现在比较新的框架中, 比如 reactjs, vuejs中用得很多的一个属性便是

Object.defineOProperty

此属性的文档在网上一搜, 其中的几个属性,

包括 存取描述符(有set和get的) 和 数据描述符(直接有 value 的就是数据描述符)

有 set get 有 value writable enumerable configurable

虽然有 set 和 get, 但是定义的时候还是要用到
enumerable 和 configurable set 和 get 类似 writable 和 value

其中的 configurable 和 writable 比较让人混淆。

configurable 给的说明是 如果为 false , 那么不可以修改, 不可以删除.
但 writable 给的说明是如果设置为 false, 不可以采用 数据运算符 进行赋值
所以这里就有一部分交叉. 如果 writable 为 true 的时候, configurable 为 false , 
那结果会怎么样呢?
 
写一下具体的例子, 比如
var o = {}; // 创建一个新对象
Object.defineProperty(o, "a", {
value : "original",
writable : false, // 这个地方为 false
enumerable : true,
configurable : true
}); o.a = "new"; //此时候, 是更改不了 a 的. var o = {}; // 创建一个新对象
Object.defineProperty(o, "a", {
value : "original",
writable : true,
enumerable : true,
configurable : false //这里为false
});
o.a = "new";//此时候, a 进行了改变
//但是如果
delete o.a //将返回 false, 并且 a 没有被删除
//结论

此刻我们看来, 对于我们的影响, 目前来看, 主要是
configurable 控制是否可以删除 writable 控制是否可以修改(赋值)
当然 enumerable 控制是否可以枚举.

例如一下的例子,解释了一下 enumerable

var o = {}; // 创建一个新对象
Object.defineProperty(o, "a", {
value : 37,
writable : true,
enumerable : false,//此处设置为false, 在枚举的时候会忽略
configurable : true
}); for(var i in o){
console.log(o[i]); // undefined, 是没有具体的值的.
}

最新文章

  1. Git异常:fatal: could not create work tree dir 'XXX': No such file or directory
  2. 开始我的IT博客之旅
  3. Microsoft .NET Framework 4.6.1
  4. ubuntu 常见问题
  5. Java---Java的面试题(二)
  6. 通过Application传递数据代码
  7. PHP字符串中的变量解析(+教你如何在PHP字符串中加入变量)
  8. 页面接口防刷 解决思路一nginx
  9. 绘制一个绿色矩形平面((50, 50)->(350, 350))
  10. Java虚拟机原理
  11. 【MYSQL】ubuntu13安装mysql(转)
  12. 修改ncnn的openmp异步处理方法 附C++样例代码
  13. [BZOJ]1018 堵塞的交通(SHOI2008)
  14. java Dated Dateformat Calendar
  15. RedHat 6配置yum源为网易镜像(转)
  16. Eclipse中Maven插件的使用技巧及原理
  17. 巧用watch命令执行循环操作,来解放我们的双手
  18. LAB4
  19. Abhyankar's Conjecture
  20. perl的内置函数scalar

热门文章

  1. re2c安装
  2. 【UOJ#49】【UR #3】轴仓库
  3. java为什么要用类型擦除实现泛型?--c++,java,c# 的泛型是如何实现的
  4. Devexpress treelist两张表父子节点设置、筛选、分页、排序、页面跳转demo
  5. C# 去除数字中多于的0
  6. 学习shiro第二天
  7. MQ选型对比ActiveMQ,RabbitMQ,RocketMQ,Kafka 消息队列框架选哪个?
  8. block注意事项
  9. springCloud搭建微服务集群+Zuul服务器端负载均衡
  10. ajax的一些知识