JavaScript设置对象属性只读不可修改、不可枚举、不可删除:Object.defineProperty


发布者 ourjs  发布时间 1590207306927
关键字 JavaScript  前端 

使用defineProperty可以定义属性是否可以被枚举、修改和删除

 

configurable 对象的属性是否可以被删除

var o = { a:1 }
Object.defineProperty(o, 'a', { configurable: false })
delete o.a
console.log(o) // {a: 1}


writable 对象的属性是否可以被修改

var o = { a:1 }
Object.defineProperty(o, 'a', { writable: false })
o.a = 2
console.log(o) // {a: 1}

enumerable 对象的属性是否可以被枚举

var o = { a:1, b:2 }
Object.defineProperty(o, 'a', { enumerable: false })
for (var key in o) {
console.log(key) //b
}

 

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。









 热门文章 - 分享最多
  1. CSS教程:图片使用混合模式和颜色叠加filter滤镜,改变PNG图标颜色
  2. CSS教程:如何设置自动显示隐藏scrollbar滚动条,自定义外观样式/宽度,附demo示例大全
  3. node.js通过Error.prepareStackTrace获取上层调用函数的文件名地址和行数位置
  4. JavaScript判断字符串是否为数字类型:Number.isInteger、isNaN、正则表达式比较
  5. webpack前端项目调试环境安装入门:webpack.config.js禁用UglifyJs只合并JavaScript不压缩混淆代码
  6. node.js创建aria2代理服务器:使用net.socket转发rpc或http request请求,替换websocket
  7. request停止维护:用node.js实现http网页爬虫抓取,模拟ajax\post请求,大文件上传下载
  8. 用node.js在Windows或Linux平台上高性能解压/压缩zip、tar大文件,输出到文件或Stream流
  9. OnceDB:使用Redis全文字符串模糊搜索,多条件查询,创建索引搜索等使用帮助教程
  10. 用CSS实现分页符,控制Web网页打印时自动强制分页:page-break-after教程

 相关阅读
  1. Node.JS如何按顺序调用async函数,如何判断是否为async函数,在mocha中自动化测试async/await代码
  2. node.js将回调函数嵌套,用promise改造成async/await顺序执行:异常处理和返回多个参数
  3. 使用node.js和oAuth2协议集成Github/LinkedIn第三方登录以OnceOA模块源码为例
  4. JavaScript在Array数组中按指定位置删除或添加元素对象
  5. node.js含有%百分号时,发送get请求时浏览器地址自动编码的问题
  6. 让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
  7. Facebook发布全新JavaScript引擎Hermes:越来越像Java字节码,JS要统一全端?
  8. 在嵌入式设备树莓派上编译QuickJS教程:一个C语言编写的极简JavaScript引擎
  9. 使用JavaScript的Proxy监听对象属性变化并进行类public/private的访问控制
  10. JavaScript求一个字符串的字节长度

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA