getOwnPropertyDescriptor and defineProperty

 function def (obj, key, val, enumerable) {
Object.defineProperty(obj, key, {
value: val,
enumerable: !!enumerable,
writable: true,
configurable: true
})
} const obj = {}
def(obj,'name','leslie',true)
def(obj,'age',18,false)
def(obj,'company','ibm',true)
// 测试 enumerable
for(let [key,value] of Object.entries(obj)){
// 只会打印出 name 和 company属性
// 因为 age 是不可枚举的属性
console.info(`${key}:${value}`)
}
// 测试 getOwnPropertyDescriptor
const property = Object.getOwnPropertyDescriptor(obj,'age')
/*
{
configurable: true,
enumerable: false,
value: 18,
writable: true,
}
*/
console.info(property) // 对象属性获取,兼容模式
const name = obj && obj.name
const test = obj && obj.test || 'test'
console.info(name) // leslie
console.info(test) // test

最新文章

  1. 2-1 Linux 操作系统及常用命令
  2. winform设置文本框宽度 根据文字数量和字体返回宽度
  3. Android 代码混淆、第三方平台加固加密、渠道分发 完整教程(图文)
  4. 理解RxJava:(三)RxJava的优点
  5. 注意java的对象引用
  6. GIT,VAGRANT及COREOS
  7. jquery.zclip—复制剪贴板(兼容各大浏览器)
  8. Java开发从初级到中级
  9. poj_1845: Sumdiv
  10. 【原创】源码角度分析Android的消息机制系列(五)——Looper的工作原理
  11. OpenLayer3调用天地图,拖拽后,地图消失的问题[已解决]
  12. Java Servlet 笔记1
  13. 杭电ACM 1001题
  14. 剑指offer【书】之简历抒写
  15. bzoj5397 circular 随机化(
  16. leetcode — add-binary
  17. FCC JS基础算法题(4):Title Case a Sentence(句中单词首字母大写)
  18. centos7改中文
  19. BZOJ5252 八省联考2018林克卡特树(动态规划+wqs二分)
  20. Windows 10 的一些快捷键

热门文章

  1. 随笔java面试基础
  2. 将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上(scp的使用)
  3. POJ2774 --后缀树解法
  4. 水题----根据O出现次数判断分数
  5. ICPC North Central NA Contest 2018
  6. 台账建立和sqlite数据库的数据导入和导入问题
  7. Mysql Backup
  8. Windows下使用图形化mount挂载磁盘到文件夹
  9. 五天一体_企业权限管理(SSM整合)
  10. Python os.getcwdu() 方法